declare @SQL varchar(2000)
declare @Total int
SET @SQL = 'Select'[email protected]+'= SUM(isnull(Points,0)) as Pointsvalue From Offer'
exec(@SQL)
select @Total
我想這樣做,但總是結果顯示我爲空。但是當我直接運行查詢時,結果爲120動態查詢不能與變量一起工作
我在哪裏出錯了?請讓我知道
感謝
王子
declare @SQL varchar(2000)
declare @Total int
SET @SQL = 'Select'[email protected]+'= SUM(isnull(Points,0)) as Pointsvalue From Offer'
exec(@SQL)
select @Total
我想這樣做,但總是結果顯示我爲空。但是當我直接運行查詢時,結果爲120動態查詢不能與變量一起工作
我在哪裏出錯了?請讓我知道
感謝
王子
如果你想運行這是一個動態查詢,嘗試這樣的:
declare @SQL nvarchar(2000), @Total int
SET @SQL = N'Select @Total = SUM(isnull(Points,0)) as Pointsvalue From Offer'
exec sp_executesql @SQL, N'@Total int output', @Total = @Total output
select @Total
(見sp_executesql (Transact-SQL))
然而,它看起來像你沒有真正動態的查詢。
所以,msmucker0527指出,你可以簡單地運行:
declare @Total int
Select @Total = SUM(isnull(Points,0)) as Pointsvalue From Offer
select @Total
什麼你想要做的是(我認爲)
SET @SQL = 'Select @Total = SUM(isnull(Points,0)) as Pointsvalue From Offer'
然而,將告訴你了,因爲@Total不範圍(在Exec的查詢都有它自己)
有一次你不需要,如果你想在上面做高管......
所以我是位C onfused什麼你想達到
小費
當你寫一個使用查詢EXEC(字符串)。 註釋掉exec,並用Print @SQL替換它,看看它會嘗試做什麼。
爲什麼這需要成爲一個動態查詢? – msmucker0527