从表中将多行插入表中

时间:2013-02-10 14:09:40

标签: sql sql-server-2008 tsql stored-procedures insert

我有一个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)

1 个答案:

答案 0 :(得分:1)

VALUES子句搞砸了 - 你有一个值逗号表。那是无效的。

以下应该可以正常工作:

INSERT INTO MyTable (Key, LinksTo) 
SELECT @Key, LinksTo 
FROM tempLinks