我有一个SQL Server 2008数据库。数据库有一个存储过程,它接收两个字符串作为参数。一个参数用于构建临时表,该表通常只有1或2行,但理论上可能有更多。
对于临时表中的每一行,我需要将一行插入到另一个表中,该表由另一个参数和临时表的内容组成。有没有办法在没有游标的情况下做到这一点?
我尝试过以下各种变体:
伪代码:
procedure InsertLinks(@Key varchar(36), @LinkKey varchar(36)
tempLinks Table = getLinks(@LinkKey)
Insert into MyTable (Key, LinksTo) Values (@Key, Select LinksTo From tempLinks)
答案 0 :(得分:1)
VALUES
子句搞砸了 - 你有一个值逗号表。那是无效的。
以下应该可以正常工作:
INSERT INTO MyTable (Key, LinksTo)
SELECT @Key, LinksTo
FROM tempLinks