文章詳情頁
SQL Server兩表數據同步的多種方法詳解
瀏覽:2日期:2023-09-28 21:00:59
目錄一、引言二、測試數據三、數據同步方法3.1、TRUNCATE TABLE3.2、CHECKSUM3.3、MERGE INTO一、引言
A表數據同步至B表的場景很常見,比如一個公司有總部及分廠,它們使用相同的系統,只是賬套不同。此時,一些基礎數據如物料信息,只需要總部錄入即可,然后間隔一定時間同步至分廠,避免了重復工作。
二、測試數據CREATE TABLE StudentA( ID VARCHAR(32), Name VARCHAR(20), Sex VARCHAR(10))GOINSERT INTO StudentA (ID,Name,Sex)SELECT '1001','張三','男'UNIONSELECT '1002','李四','男'UNIONSELECT '1003','王五','女'GOCREATE TABLE StudentB( ID VARCHAR(32), Name VARCHAR(20), Sex VARCHAR(10))GOINSERT INTO StudentB (ID,Name,Sex)SELECT '1001','張三','女'UNIONSELECT '1002','李四','女'UNIONSELECT '1003','王五','女'UNIONSELECT '1004','趙六','女'三、數據同步方法3.1、TRUNCATE TABLETRUNCATE TABLE dbo.StudentBINSERT INTO dbo.StudentB SELECT * FROM dbo.StudentA3.2、CHECKSUMDELETE FROM dbo.StudentB WHERE NOT EXISTS (SELECT 1 FROM dbo.StudentA WHERE ID=dbo.StudentB.ID)UPDATE B SET B.Name=A.Name,B.Sex=A.SexFROM dbo.StudentA A INNER JOIN dbo.StudentB B ON A.ID=B.IDWHERE CHECKSUM(A.Name,A.Sex)<>CHECKSUM(B.Name,B.Sex)INSERT INTO dbo.StudentB SELECT * FROM dbo.StudentA WHERE NOT EXISTS (SELECT 1 FROM dbo.StudentB WHERE ID=dbo.StudentA.ID)3.3、MERGE INTOMERGE INTO dbo.StudentB AS T USING dbo.StudentA AS S ON T.ID=S.IDWHEN MATCHED THEN--當ON條件成立時,更新數據。 UPDATE SET T.Name=S.Name,T.Sex=S.SexWHEN NOT MATCHED THEN --當源表數據不存在于目標表時,插入數據。 INSERT VALUES (S.ID,S.Name,S.Sex)WHEN NOT MATCHED BY SOURCE THEN --當目標表數據不存在于源表時,刪除數據。 DELETE;到此這篇關于SQL Server兩表數據同步的幾種方法 的文章就介紹到這了,更多相關SQL Server兩表數據同步內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
排行榜