Aula 12

 

Temos que copiar 2 tabelas de um servidor origem para outro servidor destino, todos os dias.

 

 

Obs.

Por que não podemos utilizar o import/export do sql ? 

 

 

/*

1.) Vamos deletar as tabelas do banco destino se existirem

2.) Vamos criar o link server se não existir

3.) Vamos criar as duas tabelas no destino atravez de select na origem

4.) Apagamos o link server 

*/

 

USE [<< BANCO DESTINO >>]

GO

/****** Object:  Table [dbo].[<< TABELA 1 DESTINO >>]    ******/

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[<< TABELA 1 DESTINO >>]') AND type in (N'U'))

DROP TABLE [dbo].[<< TABELA 1 DESTINO >>]

GO

USE [<< BANCO DESTINO >>]

GO

/****** Object:  Table [dbo].[<< TABELA 2 DESTINO >>]     ******/

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[<< TABELA 2 DESTINO >>]') AND type in (N'U'))

DROP TABLE [dbo].[<< TABELA 2 DESTINO >>]

GO

 

 

USE master;  

GO  

IF  NOT EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N'<< SERVIDOR ORIGEM >>')EXEC sp_addlinkedserver N'<< SERVIDOR ORIGEM >>',  N'SQL Server';  

GO  

USE << BANCO DESTINO >>

SELECT *  INTO << TABELA 1 DESTINO >> FROM << SERVIDOR ORIGEM >>.<< BANCO ORIGEM >>.dbo.<< TABELA 1 ORIGEM >> 

SELECT *  INTO << TABELA 2 DESTINO >> FROM << SERVIDOR ORIGEM >>.<< BANCO ORIGEM >>.dbo.<< TABELA 2 ORIGEM >>

 

 

/****** Object:  LinkedServer [<< SERVIDOR ORIGEM >>]    ******/

IF  EXISTS (SELECT srv.name FROM sys.servers srv WHERE srv.server_id != 0 AND srv.name = N'<< SERVIDOR ORIGEM >>')EXEC master.dbo.sp_dropserver @server=N'<< SERVIDOR ORIGEM >>', @droplogins='droplogins'

GO

 

 

 

/*

Problema que podemos ter utilizando esta tecnica.

 

[SQLSTATE 28000] (Error 18456). The step failed.

 

Resolvendo :

 

Todos os programas -> SQL Server 2008 -> Ferramentas de configuração -> Gerenciador de configuração do SQL Server. 

 

Vá para o agente do servidor SQL -> propriedades -> Verifique a guia de logon.

 

O logon devera ser um logon de rede nivel sql admin para facilitar, mas a cada um deve definir suas regrsas de segurança.

 

*/