Daca vb. de sincronizarea datelor (sau chiar a structurii) a două tabele se poate utiliza începând cu SQL2005 utilitarul tablediff:
BOL URL ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/sqlcmpt9/html/3c3cb865-7a4d-4d66-98f2-5935e28929fc.htm
Exemplu:
--///////////////////////////////////////////////////////////////////
USE test
GO
--tabela sursa
CREATE TABLE [dbo].[Angajat](
[Id] [int] PRIMARY KEY,
[Nume] [varchar](50) NOT NULL,
[Prenume] [varchar](50) NOT NULL,
[Departament] [varchar](50) NOT NULL
)
GO
INSERT INTO Angajat VALUES (1,'ION','IONESCU','FINANCIAR')
INSERT INTO Angajat VALUES (2,'POPA','POPESCU','FINANCIAR')
INSERT INTO Angajat VALUES (3,'VASILE','VASILESCU','CONTABILITATE')
GO
SELECT * FROM Angajat
GO
--///////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////
USE testdep
GO
--tabela destinatie
SELECT *
INTO Angajat
FROM Test.dbo.Angajat
GO
SELECT * FROM Angajat
GO
--///////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////////////////////////
--TEST
--Etapa [1] inserare, modificare, stergeri in tabela sursa test.dbo.Angajat
--<etapa_1>
USE test
GO
INSERT INTO Angajat VALUES (4,'ACE','DETECTIVUL','ZUZU')
INSERT INTO Angajat VALUES (5,'LUI','PESTE','ZUZU')
UPDATE Angajat SET Departament = 'ZUZU' WHERE Id = 1
DELETE FROM Angajat WHERE Id = 3
GO
--</etapa_1>
--Etapa [2] executie tablediff pentru generarea scriptului de sincronizare
/*
D:\Documents and Settings\bgdn>cd\
D:\>cd Program Files\Microsoft SQL Server\90\COM
D:\Program Files\Microsoft SQL Server\90\COM>TableDiff -sourceserver "(local)\SQLEXPRESS,1433" -sour
cedatabase "test" -sourcetable "Angajat" -destinationserver "(local)\SQLEXPRESS,1433" -destinationda
tabase "testdep" -destinationtable "Angajat" -f "d:\script.sql"
User-specified agent parameter values:
-sourceserver (local)\SQLEXPRESS,1433
-sourcedatabase test
-sourcetable Angajat
-destinationserver (local)\SQLEXPRESS,1433
-destinationdatabase testdep
-destinationtable Angajat
-f c:\script.sql
Table [test].[dbo].[Angajat] on (local)\SQLEXPRESS,1433 and Table [testdep].[dbo].[Angajat] on (loca
l)\SQLEXPRESS,1433 have 4 differences.
Fix SQL written to c:\script.sql.
Err Id Col
Mismatch 1 Departament
Dest. Only 3
Src. Only 4
Src. Only 5
The requested operation took 0.4375 seconds.
D:\Program Files\Microsoft SQL Server\90\COM>
*/
--Etapa [3] Executie script de sincronizare d:\script.sql in Management Studio sau sqlcmd
-- Host: (local)\SQLEXPRESS,1433
-- Database: [testdep]
-- Table: [dbo].[Angajat]
USE testdep
GO
UPDATE [dbo].[Angajat] SET [Departament]='ZUZU' WHERE [Id] = 1
DELETE FROM [dbo].[Angajat] WHERE [Id] = 3
INSERT INTO [dbo].[Angajat] ([Departament],[Id],[Nume],[Prenume]) VALUES ('ZUZU',4,'ACE','DETECTIVUL')
INSERT INTO [dbo].[Angajat] ([Departament],[Id],[Nume],[Prenume]) VALUES ('ZUZU',5,'LUI','PESTE')
GO
--Etapa [3] verificare inregistrarilor din cele 2 tabele
--<etapa_3>
SELECT * FROM test.dbo.Angajat
SELECT * FROM testdep.dbo.Angajat
--</etapa_3>
--///////////////////////////////////////////////////////////////////
Cu putin efort, sincronizarea poate fi automatizata.