有一段代码来自之前的开发人员,它使用变量执行合并语句,并一次处理一条记录。
我确信合并可以同时处理多个记录。
create table dbo.Staging
(
transactionID bigint not null primary key nonclustered,
transactionDate date not null,
productId int not null,
orderId int not null,
qty int not null,
unitPrice decimal(8,2) not null
)
create table dbo.Transactions
(
transactionID bigint not null primary key clustered,
transactionDate date not null,
productID int not null,
ReferenceOrderID int not null,
Qty int not null,
ActualCost decimal(8,2) not null
)
insert into dbo.Staging(transactionID,transactionDate,productId,orderId,qty,unitPrice)
values(1001,'20210101',45889,1501,5,105),
(1002,'20210102',45892,1503,2,8),
(1003,'20210103',45555,1555,5,5),
(1004,'20210104',44444,1444,4,4)
insert into dbo.Transactions(transactionID,transactionDate,productId,ReferenceOrderID,qty,ActualCost)
values
(1003,'20210101',41111,1111,1,1),
(1004,'20210101',41111,1111,1,1)
Run Code Online (Sandbox Code Playgroud)
代码要长得多,但这里是代码: …