2016-05-24 83 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

谢谢:)它的工作 –

相关问题