SQL Server兩表數(shù)據(jù)同步的多種方法詳解
一、引言
A表數(shù)據(jù)同步至B表的場景很常見,比如一個(gè)公司有總部及分廠,它們使用相同的系統(tǒng),只是賬套不同。此時(shí),一些基礎(chǔ)數(shù)據(jù)如物料信息,只需要總部錄入即可,然后間隔一定時(shí)間同步至分廠,避免了重復(fù)工作。
二、測試數(shù)據(jù)
CREATE TABLE StudentA ( ID VARCHAR(32), Name VARCHAR(20), Sex VARCHAR(10) ) GO INSERT INTO StudentA (ID,Name,Sex) SELECT '1001','張三','男' UNION SELECT '1002','李四','男' UNION SELECT '1003','王五','女' GO CREATE TABLE StudentB ( ID VARCHAR(32), Name VARCHAR(20), Sex VARCHAR(10) ) GO INSERT INTO StudentB (ID,Name,Sex) SELECT '1001','張三','女' UNION SELECT '1002','李四','女' UNION SELECT '1003','王五','女' UNION SELECT '1004','趙六','女'
三、數(shù)據(jù)同步方法
3.1、TRUNCATE TABLE
TRUNCATE TABLE dbo.StudentB INSERT INTO dbo.StudentB SELECT * FROM dbo.StudentA
3.2、CHECKSUM
DELETE 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.Sex FROM dbo.StudentA A INNER JOIN dbo.StudentB B ON A.ID=B.ID WHERE 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 INTO
MERGE INTO dbo.StudentB AS T USING dbo.StudentA AS S ON T.ID=S.ID WHEN MATCHED THEN --當(dāng)ON條件成立時(shí),更新數(shù)據(jù)。 UPDATE SET T.Name=S.Name,T.Sex=S.Sex WHEN NOT MATCHED THEN --當(dāng)源表數(shù)據(jù)不存在于目標(biāo)表時(shí),插入數(shù)據(jù)。 INSERT VALUES (S.ID,S.Name,S.Sex) WHEN NOT MATCHED BY SOURCE THEN --當(dāng)目標(biāo)表數(shù)據(jù)不存在于源表時(shí),刪除數(shù)據(jù)。 DELETE;
到此這篇關(guān)于SQL Server兩表數(shù)據(jù)同步的幾種方法 的文章就介紹到這了,更多相關(guān)SQL Server兩表數(shù)據(jù)同步內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SQL Server實(shí)時(shí)同步更新遠(yuǎn)程數(shù)據(jù)庫遇到的問題小結(jié)
- SQL Server 跨庫同步數(shù)據(jù)
- SqlServer2008 數(shù)據(jù)庫同步的兩種方式(發(fā)布、訂閱使用方法)
- 通過SQL Server 2008數(shù)據(jù)庫復(fù)制實(shí)現(xiàn)數(shù)據(jù)庫同步備份
- SQL Server 2005 鏡像構(gòu)建手冊(cè)(sql2005數(shù)據(jù)庫同步鏡像方案)
- 深入SqlServer2008 數(shù)據(jù)庫同步的兩種方式(Sql JOB)的分析介紹
- 使用Sqlserver事務(wù)發(fā)布實(shí)現(xiàn)數(shù)據(jù)同步(sql2008)
相關(guān)文章
SQLServer XML數(shù)據(jù)的五種基本操作
SQLServer XML數(shù)據(jù)的五種基本操作語句2009-07-07sqlserver CONVERT()函數(shù)用法小結(jié)
文章分析總結(jié)了關(guān)于CONVERT()函數(shù)在操作日期時(shí)的一些常見的用法分析下面來看看2012-09-09SQL語句實(shí)現(xiàn)查詢并自動(dòng)創(chuàng)建Missing Index
這篇文章主要介紹了SQL語句實(shí)現(xiàn)查詢并自動(dòng)創(chuàng)建Missing Index,本文直接給出SQL實(shí)現(xiàn)腳本,需要的朋友可以參考下2015-07-07用戶"sa"登陸失敗 SQLServer 錯(cuò)誤18456的解決方法
sqlserver下用sa登錄提示18456錯(cuò)誤的解決方法。2009-11-11Microsoft?SQL?Server錯(cuò)誤:?233的原因及解決辦法
這篇文章主要給大家介紹了關(guān)于Microsoft?SQL?Server錯(cuò)誤:?233的原因及解決辦法,這個(gè)錯(cuò)誤代碼是指Microsoft SQL Server遇到了一個(gè)數(shù)據(jù)庫連接失敗的問題,可能是由于數(shù)據(jù)庫連接字符串不正確、數(shù)據(jù)庫服務(wù)未啟動(dòng)、網(wǎng)絡(luò)連接故障等原因,需要的朋友可以參考下2024-06-06