2014-01-03 3 views
0

Я написал следующий скрипт в sql и @TotalTabs всегда возвращает null?присвоение результата запроса переменной всегда null sql

DECLARE @TotalTabs NVARCHAR(30) 
DECLARE @cmd NVARCHAR(MAX) 
SET @cmd = ' Select count(*) from(select distinct COutputData_3_autosampler position, COutputData_3_Sequence_Number from ' 
    + @temp_table_afterpivot_SegRpt + ')' 
EXEC sp_executesql @TotalTabs, N'@TotalTabs nvarchar out', @TotalTabs OUT 

SELECT @TotalTabs 

ответ

2

похоже, что вы выполняете @TotalTabs как SQL, когда вы должны выполнять @cmd. На самом деле ваш @cmd нигде не используется.

Select count(*) from (select distinct COutputData_3_autosampler, position, COutputData_3_Sequence_Number from ' 
+ @temp_table_afterpivot_SegRpt + ') AS TT' 

Вам не хватает запятой после этой позиции. Я предполагаю, что все 3 столбца находятся в @temp_table_afterpivot_SeqRpt?

+0

Спасибо. Теперь я обновился, чтобы запустить @cmd, затем снова. Я получаю сообщение об ошибке Неправильный синтаксис около ')' – Abe

+0

ваш SQL-код неверен, я опубликую на этом ответе то, что я «думаю» вам нужно. отсутствует запятая –

+0

Спасибо. Есть только два столбца, которые я изменил на следующий: «Выберите счетчик (*) из (выберите отдельную [COutputData_3_autosampler position], COutputData_3_Sequence_Number из '+ @temp_table_afterpivot_SegRpt +') '. Я все равно получаю ту же ошибку. да, оба эти столбца присутствуют во временной таблице. – Abe

0

Спасибо за вашу помощь. Я нашел проблему, для скрипта требуется псевдоним.

объявить @TotalTabs NVARCHAR (30) объявить @cmd NVARCHAR (макс) множество @cmd = 'Выбор количества (*) из (выберите различны [COutputData_3_AutoSampler положение], COutputData_3_Sequence_Number от' + @temp_table_afterpivot_SegRpt + «) как тт» Exec sp_executesql @cmd, N '@ TotalTabs NVARCHAR из', @TotalTabs из

выберите @TotalTabs в TotalTabs

+0

Могу ли я обновить свой пост и получить кредит? –

Смежные вопросы