2013-03-04 37 views
1

是有可能做到這一點:的SQL Server +插入SELECT語句的值到表

SELECT UserName FROM payroll p 
INNER JOIN aspnet_Users u 
ON (p.staffId= u.UserId) 
WHERE jobId = '1011' 

例如,如果上述選擇回報說3個結果:john001,mary002,peter003

如何我可以用它將單個結果插入到我的表(通知)列中嗎?在這種情況下,只有[收件人]列將具有不同的值,並且將成爲上述Select語句返回的結果。

INSERT INTO [Notification] 
(
[Recipient], 
[Message], 
[Type], 
[DateCreated] 
) 
VALUES 
(
-- The results from the select statement 
'Testing Message' 
'Type1, 
GETUTCDATE() 
) 

所以最終我應該在通知表有這些列:提前

john001, Testing Message, Type1, 10/10/1945 
mary002, Testing Message, Type1, 10/10/1945 
peter003, Testing Message, Type1, 10/10/1945 

感謝。

回答

2

你將要使用的INSERT INTO..SELECT..FROM查詢:

INSERT INTO [Notification] 
(
    [Recipient], 
    [Message], 
    [Type], 
    [DateCreated] 
) 
SELECT UserName, 'Testing Message', 'Type1', GETUTCDATE() 
FROM payroll p 
INNER JOIN aspnet_Users u 
    ON (p.staffId= u.UserId) 
WHERE jobId = '1011' 

參考資料:

1

你可以做

INSERT INTO [Notification] 
(
[Recipient], 
[Message], 
[Type], 
[DateCreated] 
) 
SELECT UserName, 
'Testing Message' 
'Type1, 
GETUTCDATE() 
FROM payroll p 
INNER JOIN aspnet_Users u 
ON (p.staffId= u.UserId) 
WHERE jobId = '1011' 

您可以使用INSERT和SELECT語句行通過以下方式添加到表:

使用INSERT語句直接或從一個子查詢指定值。

將SELECT語句與INTO子句一起使用。

http://msdn.microsoft.com/en-us/library/ms188263(v=sql.105).aspx

附加參考:

http://blog.sqlauthority.com/2007/08/15/sql-server-insert-data-from-one-table-to-another-table-insert-into-select-select-into-table/

1
INSERT INTO Notification 
(
Recipient, 
Message, 
Type, 
DateCreated 
) 
SELECT UserName, 'Testing Messag', 'Type1', GETUTCDATE() 
FROM payroll p 
JOIN aspnet_Users u 
    ON (p.staffId= u.UserId) 
Where jobId = '1011'