我的存储过程是这样的
create procedure p_Insert
@para_tableName varchar(50),
@para_Text ntextas
   insert into @para_tableName
   values(@para_Text)
go这个 @para_tableName 是一个临时表名称,由调用程序提供,但是insert语句在这里不能使用@para_tableName这个变量,请问我该怎么写?

解决方案 »

  1.   

    create procedure p_Insert
    @para_tableName varchar(50),
    @para_Text ntextas
    declare @SQLSTRING as nvarchar(4000)
    select @SQLSTRING = '
    insert into
     '+@para_tableName+' 
    values('+@para_Text+')'--print @SQLSTRING
    exec sp_executesql @SQLString
    GO
       试试看
      

  2.   

    insert into “+para_tableName+” values(@para_Text)
    这样呢
      

  3.   

    但是如果我的存储过程要求有一个返回值的话,也就是这样:
    create procedure p_Insert
    @para_tableName varchar(50),
    @para_Text ntext,
    @para_reInfo int OutPut
    as
      if *** begin
         insert into @para_tableName
         values(@para_Text)
         set @para_reInfo=1
      end 
      else begin
          set @para_reInfo=0
      end
       
    go那请问我要是使用exec的话,怎么设置@para_reInfo的返回值?
      

  4.   

    Select @ID = @@Identity
    应该是一样可以用的
      

  5.   

    Select @ID = @@Identity
    是获取我刚插入的数据的ID吧?
    我这里的@para_reInfo这个返回值是用来判断状态的(即用1代表真,用0代表假),我不是要获取ID