У меня есть переменная, которую я объявил как 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 передается в качестве параметра.