SQL游标中的动态表名

时间:2013-04-09 13:29:26

标签: sql sql-server

@Table_R nvarchar(50)

FETCH NEXT FROM M_cursor INTO @M_col    

PRINT 'Mandatory Feilds ' + @M_col 

Select count(*) from @Table_R where @M_col is null'    


FETCH NEXT FROM M_cursor INTO @M_col 

我将表名作为参数'@Table_R'发送,但是在游标中会抛出错误。

  1. 如何在Sql Cursor中使用动态表。
  2. 谢谢

2 个答案:

答案 0 :(得分:2)

您应该使用动态sql命令sp_executesql(http://msdn.microsoft.com/en-us/library/ms188001.aspx)。见例:

DECLARE @A numeric
EXEC SP_EXECUTESQL N'Select @a=count(*) from '+ @Table_R+ ' where ' + @M_col + ' is null',
      N'@A numeric OUTPUT', 
      @A OUTPUT;

答案 1 :(得分:0)

替换

Select count(*) from @Table_R where @M_col is null

EXEC('Select count(*) from '+@Table_R+' where '+@M_col+' is null')