2015-04-06 5 views
1

Я работаю на SQL в SQL Server и наткнулся на эту проблему, гдене sp_executesql показывая желаемого результата

set @sqlString=N'select @max=MAX('[email protected]+') from @temp'; 
exec sp_executesql @sqlString, 
      N'@temp as Table_Type readonly, @max nvarchar(max)', @temp ,@max; 

Я испытал это SQL заявление без параметров, и это работает, но, как это он показывает нуль в @ Максимум. Пожалуйста, помогите мне, где я иду не так!

+0

Что такое @columnName? –

+0

это переменная, содержащая имя столбца таблицы .. и @temp - временная переменная того же типа таблицы. – Sarthak

ответ

4

Необходимо указать, что параметр max равен output. Попробуйте следующее:

set @sqlString=N'select @max=MAX('[email protected]+') from @temp'; 
exec sp_executesql @sqlString, 
      N'@temp as Table_Type readonly, @max nvarchar(max) output', @temp ,@max output; 

Вы также можете проверить пример this.

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