Execute o seguinte script na sua instância do Sql Server 2005:
SET quoted_identifier OFF
GO
USE [master]
GO
/****** Object: Database [Base1] Script Date: 03/22/2006 08:08:48 ******/
IF EXISTS (SELECT name
FROM sys.databases
WHERE name = N'Base1')
DROP DATABASE [Base1]
GO
CREATE DATABASE base1
GO
USE base1
GO
CREATE TABLE xyz
(
id INT PRIMARY KEY,
name VARCHAR(100),
salary MONEY
)
GO
INSERT INTO xyz
SELECT 1,
'Rodrigo Ribeiro',
200000
INSERT INTO xyz
SELECT 2,
'João da Silva',
150000
INSERT INTO xyz
SELECT 3,
'Jonas Alberto',
36000
INSERT INTO xyz
SELECT 4,
'Rodrigo Ribeiro',
20000
GO
USE [master]
GO
/****** Object: Database [Base2] Script Date: 03/22/2006 08:09:12 ******/
IF EXISTS (SELECT name
FROM sys.databases
WHERE name = N'Base2')
DROP DATABASE [Base2]
GO
CREATE DATABASE base2
GO
USE base2
GO
CREATE TABLE xyz
(
id INT PRIMARY KEY,
name VARCHAR(100),
salary MONEY
)
GO
INSERT INTO xyz
SELECT 1,
'Rodrigo Ribeiros',
220000
INSERT INTO xyz
SELECT 2,
'João da Silvas',
230000
INSERT INTO xyz
SELECT 4,
'Rodrigo Ribeiros',
20000
INSERT INTO xyz
SELECT 9,
'Albertina Rosa',
40000
GO
Agora, clique em Iniciar>Executar e digite "cmd". No prompt do DOS, dê o comando CD e mude o diretório para a pasta COM da instância do Sql Server onde as tabelas serão comparadas. No meu computador, esta em "C:\Arquivos de programas\Microsoft SQL Server\90\COM".
Agora, digite no prompt do DOS o seguinte comando: tablediff -sourceserver "sua instancia" -sourcedatabase "Base1" -sourcetable "xyz" -destinationserver "sua instancia" -destinationdatabase "Base2" -destinationtable "xyz" -f "c:\Dif"
Onde você está lendo "sua instância", coloque o IP do servidor e o nome da instância (se houver) do Sql Server onde executou os scripts no começo de exemplo. Depois de executar o comando, verifique que na raiz do seu computador, o arquivo DIFF.sql foi criado com o seguinte conteúdo:
UPDATE [dbo].[xyz]
SET [name] = 'Rodrigo Ribeiro',
[salary] = 200000.0000
WHERE [id] = 1
UPDATE [dbo].[xyz]
SET [name] = 'João da Silva',
[salary] = 150000.0000
WHERE [id] = 2
INSERT INTO [dbo].[xyz]
([id],
[name],
[salary])
VALUES (3,
'Jonas Alberto',
36000.0000)
UPDATE [dbo].[xyz]
SET [name] = 'Rodrigo Ribeiro'
WHERE [id] = 4
DELETE FROM [dbo].[xyz]
WHERE [id] = 9
Até a próxima!

Nenhum comentário:
Postar um comentário
Leave your comment here!