У меня есть код ниже, где я хочу получить идентификатор строки с помощью динамического SQL.
Обратите внимание, что переменные @posselect
и @catselect
заполнены, но я оставил это для обзора.
declare @SQL nvarchar(1000)
declare @posselect nvarchar(50)
declare @catselect nvarchar(100)
declare @bannerid int
SET @SQL = 'SELECT TOP 1 @id = id FROM banners
WHERE publishdate < GETDATE()
AND depublishdate > GETDATE()' + @posselect + @catselect +
'ORDER BY [views] ASC'
EXEC sp_executesql @SQL, @bannerid = @id output 'on this line I get the error
print '@bannerid:'+STR(@bannerid)
Я получаю сообщение об ошибке:
Необходимо объявить скалярную переменную "@id".