merge - 使用外部查询插入从 Merge $Action 获取插入和更新计数 - SQL Server
问题描述
--Inserting a new record for updates
Insert dbo.DestinationTable
(
CustomerID,
CustomerName,
IscurrentFlag
)
select
CustomerID,
CustomerName,
IscurrentFlag
from
(
--Inserting a new record for inserts
MERGE dbo.DestinationTable as dt
USING dbo.SourceTable as src
ON dt.CustomerID=src.CustomerID
WHEN NOT MATCHED THEN INSERT
(CustomerID,CustomerName,IscurrentFlag)
values (src.CustomerID,src.CustomerName,'Y')
WHEN MATCHED
THEN UPDATE
SET dt.IscurrentFlag ='N'
OUTPUT src.*, $Action as MergeAction
) as mrg
WHERE MergeAction = 'UPDATE'
问题
我们如何从 Merge $Action 获得插入和更新的总数??我需要记录插入和更新计数。
I tried using multiple outputs inside merge but getting an error
"An OUTPUT INTO clause is not allowed in a nested INSERT, UPDATE, DELETE, or MERGE statement"
OUTPUT $Action as counts into @Temp
OUTPUT src.*, $Action as MergeAction
业务限制:我们无法分离外部插入功能,我知道我们可以使用临时表将所有输出加载到其中并获取计数并执行外部插入。
解决方案
推荐阅读
- python - 是否可以使 QTableView 中的列标签可编辑?
- excel - Excel日期公式
- python - 面板数据研发资本化
- javascript - jQuery关于不触发动态生成的元素
- bash - Extract last part of the string when separator is not always the same using awk
- php - php中获取User的referrer和referrer的referrer数据
- c# - 使用 c# 删除 XML Header 和 Footer 节点
- asp.net-core - cronos 上每 2 小时的 cron 表达式是什么?我正在使用 0 */2 * * * 但它不起作用
- go - 如何在 Go 中加入 URL?
- python - 索引为分类时计算/合并 dask 数据帧时的问题