我有一个已声明为nvarchar的变量,但是当我在代码中使用它并执行它时,我得到“必须声明标量变量@C”。
我已经这样做了,为什么我会收到错误消息?我的其他变量@T不会发生这种情况。
DECLARE @T NVARCHAR(3)
SET @T = 'ABC'
DECLARE @C NVARCHAR(2)
SET @C = '26'
DECLARE @SQL NVARCHAR(MAX)
SET @SQL =
'SELECT ' + @C + ' AS CLASS,
(SELECT COUNT(*) FROM T1_'+@T+') T1,
(SELECT COUNT(*) FROM T2_'+@T+') T2,
(SELECT COUNT(*) FROM T3_'+@T+') T3'
exec (@SQL)
我可以很容易地编写SELECT '26' AS Class
(它可以工作),但最终我想将其包装在存储过程中,其中@C作为参数传递。