DECLARE @LOG TABLE(
A NVARCHAR(5)
)
DECLARE @target TABLE (
ID NVARCHAR(5),
USERNAME NVARCHAR(50),
EMAIL NVARCHAR(50),
DEP NVARCHAR(50)
)
DECLARE @source TABLE (
ID1 NVARCHAR(5),
USERNAME1 NVARCHAR(50),
EMAIL1 NVARCHAR(50),
DEP1 NVARCHAR(50),
DEP2 NVARCHAR(50)
)
INSERT INTO @target(ID,USERNAME,EMAIL,DEP)VALUES('1','Hank','aaa@mail','A1')
INSERT INTO @target(ID,USERNAME,EMAIL,DEP)VALUES('2','Hank456','bbb@mail','B1')
INSERT INTO @source(ID1,USERNAME1,EMAIL1,DEP1)VALUES('1','Hank123','ccc@mail','')
INSERT INTO @source(ID1,USERNAME1,EMAIL1,DEP1)VALUES('3','Hank666','ddd@mail','')
MERGE INTO @target as target –要被insert/update/delete的表
USING (SELECT ID1,EMAIL1,USERNAME1 ,DEP1 FROM @source ) as source –被參考的表
ON (target.ID = source.ID1) –決定MATCHED與否
WHEN NOT MATCHED
THEN
INSERT (ID,USERNAME,EMAIL,DEP)
VALUES (
source.ID1
,source.USERNAME1
,source.EMAIL1
,'E'
)
WHEN MATCHED
THEN
UPDATE
SET target.USERNAME = source.USERNAME1
,target.EMAIL = source.EMAIL1
,target.DEP = source.DEP1;
—結尾一定是分號
SELECT * FROM @target
–SELECT * FROM @source
2020-06-23
[T-SQL]MERGE 練習
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言