2014-09-22 87 views
0

我想使用SQL Server 2008作为较长过程的一部分插入到表中。 插入的表有两列,itemID和标记。SQL Server:如何插入组合两个不同的选择

标签部分是从输入参数(xml)中选择的,并按照下图所示的线路按预期工作。 我的问题是itemID需要同时从临时表(@temp)中选择。 有人可以告诉我如何在这里做到这一点?

我的SQL(仅适用于相关部分):

INSERT INTO RC_Items_Tags 
(
     itemID, 
     tag 
) 
SELECT 
     itemID, 
     ParamValues.tag.value('.', 'varchar(255)') 
FROM 
     @xmlTags.nodes('/tags/tag') AS ParamValues(tag) 

提前为任何帮助,蒂姆非常感谢。

+1

所以,每'itemID'从'@ temp'每一行应给予相同的标记值? – 2014-09-22 09:12:19

+0

不知道我明白这个问题,你能举一些例子数据(包括输入和输出)吗? – DavidG 2014-09-22 09:13:32

+0

@Damien_The_Unbeliever:是的,都会得到相同的itemID。 – user2571510 2014-09-22 09:17:51

回答

1

只是执行CROSS JOIN

INSERT INTO RC_Items_Tags 
(
     itemID, 
     tag 
) 
SELECT 
     t.itemID, 
     ParamValues.tag.value('.', 'varchar(255)') 
FROM 
     @xmlTags.nodes('/tags/tag') AS ParamValues(tag) 
       CROSS JOIN 
     @temp t 
+0

完美 - 这正是我所期待的。对不起,我对SQL还很陌生。我会尽快接受。 – user2571510 2014-09-22 09:20:18