Tenho 2 servidores MSSQL em execução, com mais ou menos o mesmo conjunto de dados. É realmente uma configuração de produção/desenvolvimento.
Agora, meu fluxo de trabalho é assim. Diariamente são feitos backups de cada um dos bancos de dados do servidor de produção. Transfiro os backups pela Internet (dezenas de Gigabytes) para o servidor de desenvolvimento. Eu "restauro" o banco de dados no servidor de desenvolvimento usando o backup do servidor de produção, para ter um conjunto de dados atual.
Minha pergunta é esta:
Existe uma maneira fácil e rápida de "exportar" uma única tabela de um banco de dados do servidor MSSQL e importá-la para um banco de dados em um servidor MSSQL diferente?
Estou mais interessado em um tipo de operação de "melhores práticas" do que em algum truque de PDV fraudado por um júri.
ATUALIZAR
Depois de pesquisar no Google, encontrei uma função do MSSQL Server que produz um script que exporta a tabela e a importa quando executada. Não posso usar isso pois preciso importar a tabela em outro servidor.
Responder1
Você também pode buscar os dados diretamente por SQL em seu servidor de destino. Se você tiver acesso à rede:
SELECT a.*
INTO <YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
'SELECT *
FROM <YOUR TABLE>
') AS a;
Mas você mesmo deve criar os índices.
Ou você está usando INSERT:
INSERT INTO
<YOUR TARGET TABLE>
FROM OPENROWSET('SQLNCLI', 'Server=<IP/SERVERNAME>;Trusted_Connection=yes;',
'SELECT *
FROM <YOUR TABLE>
') AS a;
Responder2
A parte de exportação foi respondida no DBA:
https://dba.stackexchange.com/questions/25755/fazendo um backup de uma única tabela no servidor sql
Como exportar uma única tabela no SQL Server também foi respondido inúmeras vezes no Stackoverflow:
https://stackoverflow.com/questions/680552/table-level-backup
O Google produz outras muitas maneiras:
Depois de exportar uma única tabela, transfira-a por qualquer meio (rsync, por exemplo, ou SFTP, scp) e importe-a.