domingo, 30 de maio de 2010

Usando o TableDiff.exe - Parte 1

O TableDiff.Exe é um aplicativo de linha de comando que permite comparar estrutura e dados entre tabelas de bancos de dados diferentes. Este Aplicativo é instalado junto com o Sql Server 2005.

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!