Pergunta

Quero 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, pois 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 apareceriam em algum lugar deste script.

Foi útil?

Solução

Acho que o que você quer fazer é criar um servidor vinculado conforme esse artigo msdn.Você selecionaria então usando um nome de objeto de 4 partes, por exemplo:

Select * From ServerName.DbName.SchemaName.TableName

Outras dicas

Você pode usar fonte de dados aberta 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

O SQL Server Integration Services (SSIS) é uma opção?Se sim, eu usaria isso.

Você transferiria 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ê planeja fazer a transferência regularmente.

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

  1. Configure 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

Bem, não concordo com seu comentário sobre replicação.Você pode iniciar uma replicação criando um banco de dados do zero e pode controlar se as atualizações serão feitas 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 a fazer é iniciar uma replicação de instantâneo através do MSSQL Server Studio, obter os scripts T-SQL correspondentes (ou seja, as instruções T-SQL correspondentes para publicação e assinaturas) e registrar esses scripts como parte de um trabalho em a lista Jobs do SQL Agent ou como um trabalho de replicação na pasta de replicações.

Você poderia seguir a rota do servidor vinculado.

você simplesmente não pode usar o select * into, você precisa fazer uma inserção no select.

Eu evitaria a replicação se você não tivesse experiência com isso, pois pode ser difícil consertar se quebrar e pode estar sujeito a outros problemas se não for gerenciado adequadamente.

Mantenha a simplicidade, especialmente se os bancos de dados forem pequenos.

Você pode usar os Serviços de Transformação de Dados para fazer o trabalho?Isso fornece todos os tipos de ferramentas integradas para fazer esse tipo de coisa.

Você pode baixar o feature pack do SQL Server 2005 no site da Microsoftaqui

CREATE VIEW newR1 
AS
SELECT * from OPENQUERY ([INSTANCE_NAME], 'select * from DbName.SchemaName.TableName')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top