SELECT后,在存储过程中执行INSERT

时间:2015-08-17 20:59:48

标签: sql sql-server

我想从一个表中查询用户列表:

SELECT username FROM Users WHERE birthday = todaysDate

并使用返回的结果插入另一个表

INSERT INTO Message (username, message) VALUES (*username from query above*, 'Happy Birthday')

我可以查询结果,我可以插入带有硬编码值的表,但是我不知道如何在SQL中执行循环并执行操作,因为我只使用记录集在VBScript中完成了。 / p>

我需要为此制作2个单独的存储过程吗?或者是一个存储过程甚至不是正确的路线?

2 个答案:

答案 0 :(得分:5)

你可以在一个电话中完成:

INSERT INTO Message (username, message)
SELECT username, 'Happy Birthday'
FROM Users
WHERE birthday = todaysDate

答案 1 :(得分:1)

只需使用insert . . . select

INSERT INTO Message (username, message) 
    SELECT username, 'Happy Birthday'
    FROM Users
    WHERE birthday = todaysDate;