【发布时间】:2011-02-26 02:36:49
【问题描述】:
有没有办法在调用 MERGE 后确定记录是否匹配(记录是插入还是更新)?
理想情况下,我想将其输出到参数。
编辑: 我的合并语句使用以下语句输出在我的管理工作室中发生的事情: 假设我有以下合并语句:
MERGE INTO TestTable as target
USING ( select '00D81CB4EA0842EF9E158BB8FEC48A1E' )
AS source (Guid)
ON ( target.Guid = source.Guid )
WHEN MATCHED THEN
UPDATE SET Test_Column = NULL
WHEN NOT MATCHED THEN
INSERT (Guid, Test_Column) VALUES ('00D81CB4EA0842EF9E158BB8FEC48A1E', NULL)
OUTPUT $action;
我正在尝试使用参数来获取“$action”输出。
【问题讨论】:
-
我无法对此进行测试,但您是否以保证只会影响一行的方式使用它?如果是这样,
OUTPUT @SomeVariable = $action";工作吗? -
我会试试你的建议马丁。我不够清楚,因为我正在使用 .NET 调用来执行此操作。我很抱歉。我确实发现我可以调用:DbCommand 命令; ... DbDataReader reader = command.ExecuteReader() 并查看结果表。
标签: sql sql-server-2008 merge