Sql 选择后执行插入存储过程

Sql 选择后执行插入存储过程,sql,sql-server,Sql,Sql Server,我想从一个表中查询用户列表: SELECT username FROM Users WHERE birthday = todaysDate 并使用返回的结果插入到另一个表中 INSERT INTO Message (username, message) VALUES (*username from query above*, 'Happy Birthday') 我可以查询结果,也可以使用硬编码的值插入到表中,但我不确定如何在SQL中循环结果并执行操作,因为我只在VBScript中使用记录集完

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

SELECT username FROM Users WHERE birthday = todaysDate
并使用返回的结果插入到另一个表中

INSERT INTO Message (username, message) VALUES (*username from query above*, 'Happy Birthday')
我可以查询结果,也可以使用硬编码的值插入到表中,但我不确定如何在SQL中循环结果并执行操作,因为我只在VBScript中使用记录集完成了这一操作


我需要为此创建两个单独的存储过程吗?或者存储过程在这里不是正确的路径吗?

您可以通过一次调用完成:

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

只需使用
insert。选择

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

非常感谢。成功了。我没有很多SQL方面的经验。不知道一个简单的SELECT可以包含一个不属于目标表的字符串参数。我想我得用一个EXISTS什么的。我很感激。