我希望使用SQL Server 2008作为较长过程的一部分插入到表中。插入的表有两列,itemID和tag。
标记部分从输入参数(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)
答案 0 :(得分: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