我有下面的代碼,我想通過動態SQL獲取一行的id。將動態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)
我得到的錯誤:
Must declare the scalar variable "@id".
有困難張貼代碼,不知道該標籤的使用。替換@與[在] 固定這樣的: 聲明[在] ParmDefinition爲nvarchar(250) 組[在] ParmDefinition = '[在] bannerid int的列' 組[在] SQL ='SELECT TOP 1 [ at] bannerid = id FROM banner WHERE發佈日期 GETDATE()'+ [at]擁有+ at] ParmDefinition,[at] bannerid out 謝謝! –
Flo