SQL合并-持久化数据
我使用SQL Server 2014 在我的过程中,我有一个MERGE语句,我对此有一个问题 我的MERGE语句具有以下简单结构:SQL合并-持久化数据,sql,sql-server,Sql,Sql Server,我使用SQL Server 2014 在我的过程中,我有一个MERGE语句,我对此有一个问题 我的MERGE语句具有以下简单结构: MERGE dbo.T1 AS tgt USING (SELECT ...) AS src ON ... WHEN MATCHED THEN UPDATE ... WHEN NOT MATCHED THEN INSERT ... OUTPUT inserted.MyColumn INTO @NewTable (MyColumnValue); 就像它
MERGE dbo.T1 AS tgt
USING (SELECT ...) AS src ON ...
WHEN MATCHED THEN
UPDATE ...
WHEN NOT MATCHED THEN
INSERT ...
OUTPUT inserted.MyColumn
INTO @NewTable (MyColumnValue);
就像它为所有插入填充一个表一样,我也需要它为所有更新填充另一个表
是可能的,如果是的话,请告诉我怎么做 不,不可能将结果指向两个表。看 您可以使表格更宽,并在同一行上输出插入列和删除列:
MERGE dbo.T1 AS tgt
USING (SELECT ...) AS src ON ...
WHEN MATCHED THEN
UPDATE ...
WHEN NOT MATCHED THEN
INSERT ...
OUTPUT $action, inserted.col1, inserted.col2, deleted.col1, deleted.col2
INTO @NewTable (action, inserted_col1, inserted_col2, deleted_col1, deleted_col2);
然后,您可以根据需要拆分@NewTable。输出$action、inserted.*和deleted.*将为您的列进行更新,您可以使用$action从更新中提取记录。