TSQL MERGE命令似乎没有实际合并

TSQL MERGE命令似乎没有实际合并,tsql,merge,Tsql,Merge,我正在研究代码 当我从那里剪切粘贴以下代码时: --正确指定联接条件的MERGE语句 USE tempdb; GO BEGIN TRAN; MERGE Target AS T USING Source AS S ON (T.EmployeeID = S.EmployeeID) WHEN NOT MATCHED BY TARGET AND S.EmployeeName LIKE 'S%' THEN INSERT(EmployeeID, EmployeeName) VALUES(S.Em

我正在研究代码

当我从那里剪切粘贴以下代码时:

--正确指定联接条件的MERGE语句

USE tempdb;
GO
BEGIN TRAN;
MERGE Target AS T
USING Source AS S
ON (T.EmployeeID = S.EmployeeID) 
WHEN NOT MATCHED BY TARGET AND S.EmployeeName LIKE 'S%' 
    THEN INSERT(EmployeeID, EmployeeName) VALUES(S.EmployeeID, S.EmployeeName)
WHEN MATCHED 
    THEN UPDATE SET T.EmployeeName = S.EmployeeName
WHEN NOT MATCHED BY SOURCE AND T.EmployeeName LIKE 'S%'
    THEN DELETE 
OUTPUT $action, inserted.*, deleted.*;
ROLLBACK TRAN;
GO 

它产生他们所说的输出,但实际上并没有改变目标表。如何让它实际更改目标表的结果?是否有某种开关?

更换
回滚传输提交传输的code>


目标表正在更改,因此您可以看到正确的
输出
,但在下一条语句中,您将通过回滚事务来撤消它。

替换
回滚事务提交传输的code>


目标表正在更改,因此您可以看到正确的
输出
,但在下一条语句中,您将通过回滚事务来撤消它。

太棒了!谢谢当时间流逝时将进行检查。太好了!谢谢将在时间流逝时进行检查。