2016-05-24 36 views
1

我正在使用SQL服務器。我有5個變量:@contentsType, @itemIDand, @dealerID, @userID,@itemID我可以在單個查詢中設置多個變量值嗎?

如何在單個查詢中設置這些變量值一次?

SET @contentsType = (select top 1 mi.type_id from #tempResults as tr left join [myDB].[dbo].myTable mi on tr.item_id = mi.id) 
SET @itemID = (select top 1 mi.item_id from #tempResults as tr left join [myDB].[dbo].myTable mi on tr.item_id = mi.id) 
SET @dealerID = (select top 1 mi.dealer_id from #tempResults as tr left join [myDB].[dbo].myTable mi on tr.item_id = mi.id) 
SET @userID = (select top 1 mi.user_id from #tempResults as tr left join [myDB].[dbo].myTable mi on tr.item_id = mi.id) 
SET @itemID = (select top 1 id from #tempResults) 
+0

不知道我明白你正在嘗試做的。你期待你的查詢中有多於一行嗎? –

+0

如果沒有'order by',你不應該使用'top'。 –

回答

4

可以使用select set

select top 1 
    @contentsType = mi.type_id, 
    @itemID = mi.item_id, 
    @dealerID = mi.dealer_id, 
    @userID = mi.user_id 
from #tempResults as tr 
left join [myDB].[dbo].myTable mi on tr.item_id = mi.id; 

select top 1 @itemID = id from #tempResults 
+0

謝謝:)它的工作 –

相關問題