dop*_*ner 5 sql stored-procedures sql-server-2008
我正在使用临时表来执行验证并插入实时.
假设我有一个表PERSONS
TABLE Persons
(
Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
HouseNumber int,
)
Run Code Online (Sandbox Code Playgroud)
和STAGING TABLE如下
TABLE Persons_Staging
(
Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
HouseNumber varchar(255),
)
Run Code Online (Sandbox Code Playgroud)
我需要编写一个过程来将数据从登台表传输到活动表,同时确保不插入重复项.我怎样才能做到这一点?
提前致谢
使用该MERGE
命令.
像这样的东西:
MERGE
INTO Persons AS TARGET
USING Persons_Staging AS SOURCE
ON TARGET.ID = SOURCE.ID
--WHEN MATCHED
-- THEN UPDATE???
WHEN NOT MATCHED BY TARGET
THEN INSERT (Id , LastName , FirstName, HouseNumber)
VALUES (SOURCE.Id , SOURCE.LastName , SOURCE.FirstName, SOURCE.HouseNumber)
-- WHEN NOT MATCHED BY SOURCE
-- THEN DELETE???
;
Run Code Online (Sandbox Code Playgroud)
如果要更新现有记录,请取消注释该UPDATE
部件并添加适当的更新子句.与删除部分相同.
归档时间: |
|
查看次数: |
5490 次 |
最近记录: |