it-swarm-pt.tech

SQL entre servidores

Desejo portar dados do banco de dados de um servidor para o banco de dados de outro servidor. Os bancos de dados estão em um servidor mssql 2005 diferente. A replicação provavelmente não é uma opção, já que o banco de dados de destino é gerado do zero com base em [intervalo de tempo].

De preferência, eu faria algo como

insert *
from db1/table1
into db2/table2
where rule1 = true

É óbvio que as credenciais de conexão entrariam em alguma parte deste script.

30
Boris Callens

Eu acho que o que você quer fazer é criar um servidor vinculado conforme o artigo this msdn. Você selecionaria usando um nome de objeto de 4 partes, por exemplo:

Select * From ServerName.DbName.SchemaName.TableName
35
Matthew Pelser

Você pode usar o Open Data Source assim:

EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO

EXEC sp_configure 'Ad Hoc Distributed Queries', 1
GO
RECONFIGURE
GO


SELECT  *
FROM    OPENDATASOURCE('SQLOLEDB',
                   'Data Source=<Ip Of Your Server>;
                    User ID=<SQL User Name>;Password=<SQL password>').<DataBase name>.<SchemaName>.<Table Or View Name>

Go
8
Ardalan Shahgholi

Bem, eu não concordo com o seu comentário sobre replicação. Você pode iniciar uma replicação criando um banco de dados do zero e pode controlar as atualizações, atualizando o banco de dados do cliente disponível ou simplesmente recriando o banco de dados.

A replicação automatizada facilitará seu trabalho, gerenciando automaticamente chaves e relações.

Acho que a coisa mais fácil é iniciar uma replicação de instantâneo através do MSSQL Server Studio, obter os scripts correspondentes do T-SQL (ou seja, as instruções correspondentes do T-SQL para publicação e assinaturas) e registrar esses scripts como parte de um trabalho em a lista de tarefas do SQL Agent ou como uma tarefa de replicação na pasta de replicações.

1
Philippe Grondier

Os Serviços de Integração do SQL Server (SSIS) são uma opção? Se assim for, eu usaria isso.

1
Galwegian

Você pode seguir a rota do servidor vinculado.

você simplesmente não pode usar o select * into, você deve inserir o select.

Eu evitaria a replicação se você não tiver experiência com ela, pois pode ser difícil corrigi-la se quebrar e pode ser propenso a outros problemas se não for gerenciado adequadamente.

Mantenha as coisas simples, especialmente se os bancos de dados forem pequenos.

1
Wes Brown

Você estaria transferindo todo o conteúdo do banco de dados de um servidor para outro ou apenas alguns dados de algumas tabelas?

Para ambas as opções, o SSIS faria o trabalho, especialmente se você estiver planejando a transferência regularmente.

Se você simplesmente deseja copiar alguns dados de 1 ou 2 tabelas e prefere fazê-lo usando o TSQL no SQL Management Studio, pode usar o servidor vinculado, conforme sugerido pelo pelser

  1. Configurar o servidor de banco de dados de origem como um servidor vinculado
  2. Use a seguinte sintaxe para acessar dados
select columnName1, columnName2, etc from serverName.databaseName.schemaName.tableName
1
kristof

Você pode usar o Data Transformation Services para fazer o trabalho? Isso fornece todos os tipos de ferramentas de junção para fazer esse tipo de coisa.

Você pode baixar o pacote de recursos do SQL Server 2005 no site da Microsoft aqui

0
Thomas Rushton