当前位置:Gxlcms > 数据库问题 > sql server 2008 merge matched判定条件

sql server 2008 merge matched判定条件

时间:2021-07-01 10:21:17 帮助过:3人阅读

SQL Server 2008 开始支持 MERGE语句 

  -- 源表 CREATE TABLE test_from (id INT, val VARCHAR(20));   -- 目标表 CREATE TABLE test_to (id INT, val VARCHAR(20));   -- 插入源表 INSERT INTO test_from VALUES (1, ‘A‘); INSERT INTO test_from VALUES (2, ‘B‘);   -- 合并 源表到目标表 MERGE test_to USING test_from ON ( test_to.id = test_from.id )    -- 条件是 id 相同 WHEN MATCHED THEN UPDATE SET test_to.val = test_from.val   -- 匹配的时候,更新 WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入 WHEN NOT MATCHED BY SOURCE THEN DELETE-- 目标表有,源表没有,目标表该数据删除.   -- 第一次检查 目标表数据. SELECT FROM test_to;   id          val ----------- --------------------           1 A           2 B     -- 更新源表 UPDATE test_from SET val = ‘A2‘ WHERE id = 1; -- 删除源表 DELETE FROM test_from WHERE id = 2; -- 插入源表 INSERT INTO test_from VALUES (3, ‘C‘);     -- 合并 源表到目标表 MERGE test_to USING test_from ON ( test_to.id = test_from.id )    -- 条件是 id 相同 WHEN MATCHED THEN UPDATE SET test_to.val = test_from.val   -- 匹配的时候,更新 WHEN NOT MATCHED THEN INSERT VALUES(test_from.id, test_from.val) -- 源表有,目标表没有,插入 WHEN NOT MATCHED BY SOURCE THEN DELETE-- 目标表有,源表没有,目标表该数据删除.   -- 再次检查 目标表数据. SELECT FROM test_to;   id          val ----------- --------------------           1 A2           3 C

sql server 2008 merge matched判定条件

标签:str   create   arc   ber   相同   没有   sql   sel   comment   

人气教程排行