Должен объявить ошибку скалярной переменной, даже если она объявлена - PullRequest
0 голосов
/ 10 сентября 2018

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

...