2014-02-14 38 views
2

我想SQL插入多行插入表中使用的變量有多個值作爲一個值插入

INSERT INTO TABLE (col1, col2, col3) [col1 through col3 are non null columns] 
VALUES (val1,val2,val3) 

所有瓦爾斯是uniqueidentifiers。我正在做的是更新一個表,該表具有val1的唯一成員標識和val2的唯一功能鍵以及由val3的鍵創建的唯一功能鍵。這在UI方面做的是給成員分配一個功能區,並且必須由成員創建。我想要做的是將val2和val3分配給100個成員。所以我想知道我是否可以做一個select查詢,返回100個成員id的列表,並將該id列表分配給我將用於val1的變量。

試圖讓使用這所有的ID分配變量時:

declare @members uniqueidentifier 
set @members = (
Select Members.MemberID from Members 
where departmentkey = 'D22CF614-721B-4C15-ABF6-02541CDC7502') 

[這將返回所有成員從100個成員的特定部門]

我得到這個錯誤:

Msg 512, Level 16, State 1, Line 2 
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression. 

所以我的第一步是找出如何讓這個變量@members分配成員id的列表。 然後第二步是分配所有成員這樣色帶:

INSERT INTO TABLE (col1, col2, col3) 
VALUES (@members,val2,val3) 

有沒有辦法做什麼,我試圖做的? 讓我知道你是否需要更多信息。 感謝

回答

4

嘗試這樣做:

INSERT INTO TABLE (col1, col2, col3) 
    Select Members.MemberID, val2,val3 
    from Members 
    where departmentkey = 'D22CF614-721B-4C15-ABF6-02541CDC7502'; 

不要變麻煩。

+0

+1,因爲你明白他的問題...... :) – user1844933

+0

謝謝@GordonLinoff。這工作。 –