我有一个 T-SQL 语句,它基本上执行插入并将一些插入的值输出到表变量以供以后处理。
有没有办法让我将所选记录的旧身份 ID 存储到我的表变量中。如果我使用下面的代码,我会得到“无法绑定多部分标识符“a.ID””。错误。
DECLARE @act_map_matrix table(new_act_id INT, old_ID int)
DECLARE @new_script_id int
SET @new_script_id = 1
INSERT INTO Act
(ScriptID, Number, SubNumber, SortOrder, Title, IsDeleted)
OUTPUT inserted.ID, a.ID INTO @act_map_matrix
SELECT
@new_scriptID, a.Number, a.SubNumber, a.SortOrder, a.Title, a.IsDeleted
FROM Act a WHERE a.ScriptID = 2
Thanks!
我遇到了同样的问题并在以下位置找到了解决方案http://sqlblog.com/blogs/adam_machanic/archive/2009/08/24/dr-output-or-how-i-learned-to-stop-worrying-and-love-the-merge.aspx
基本上,它会破解 MERGE 命令以将其用于插入,以便您可以访问 OUTPUT 子句中未插入的源字段。
MERGE INTO people AS tgt
USING #data AS src ON
1=0 --Never match
WHEN NOT MATCHED THEN
INSERT
(
name,
current_salary
)
VALUES
(
src.name,
src.salary
)
OUTPUT
src.input_surrogate,
inserted.person_id
INTO #surrogate_map;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)