create procedure readsmsemail (@yjlx nvarchar(20))  as begin
declare @name nvarchar(50)select @name = @yjlx from smsets
...........
以下省略
我意思是@yjlx是一个表的列名,比如最后执行时 exec readsmsemail N'kkk'这段要怎么写?如果按我上面的写,直接@name就是kkk的值,而不是select kkk from smsets 的值,谢谢。

解决方案 »

  1.   

    declare @num int, 
            @sqls nvarchar(4000) 
    set @sqls='select count(*) from tableName' 
    exec(@sqls) 
    --如何将exec执行结果放入变量中? declare @num int, 
                   @sqls nvarchar(4000) 
    set @sqls='select @a=count(*) from tableName ' 
    exec sp_executesql @sqls,N'@a int output',@num output 
    select @num 
      

  2.   

    CREATE PROC P(@NAME VARCHAR(10))
    AS
      EXEC('SELECT '+@NAME+' FROM TB')