Como inserir valores de tabela de um banco de dados para outro banco de dados? [fechadas]

91

Eu quero uma consulta para inserir registros de uma tabela para outra tabela em um banco de dados diferente se a tabela de destino já existe, ela deve anexar os registros no final da tabela.

naveenkumar
fonte

Respostas:

160

Que tal agora:

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
   SELECT field1, field2, field3
     FROM SourceDatabase.dbo.SourceTable
     WHERE (some condition)
marc_s
fonte
4
10 anos depois ... ainda muito apreciado.
Chris Catignani,
@ChrisCatignani: obrigado! Algumas respostas são feitas para a eternidade ;-)
marc_s
34

Como inserir valores de tabela de um servidor / banco de dados para outro banco de dados?

1 Criação de servidores vinculados {se necessário} (SQL server 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure

2 configure o servidor vinculado para usar credenciais a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx

EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'

- VERIFICAR SERVIDORES

SELECT * FROM sys.servers

- TESTE SERVIDORES VINCULADOS

EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'

INSERIR NA NOVA TABELA LOCAL

SELECT * INTO NEWTABLE
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE

OU

INSERIR COMO NOVOS VALORES NA TABELA REMOTA

INSERT
INTO    [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
SELECT  *
FROM    localTABLE

INSERIR COMO NOVOS VALORES DE TABELA LOCAL

INSERT
INTO    localTABLE
SELECT  *
FROM    [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
OzzKr
fonte
10

Este é um método rápido e fácil:

CREATE TABLE database1.employees
AS
SELECT * FROM database2.employees;
Cillín
fonte
10
    --Code for same server
USE [mydb1]
GO

INSERT INTO dbo.mytable1 (
    column1
    ,column2
    ,column3
    ,column4
    )
SELECT column1
    ,column2
    ,column3
    ,column4
FROM [mydb2].dbo.mytable2 --WHERE any condition

/*
steps-
    1-  [mydb1] means our opend connection database 
    2-  mytable1 the table in mydb1 database where we want insert record
    3-  mydb2 another database.
    4-  mytable2 is database table where u fetch record from it. 
*/

--Code for different server
        USE [mydb1]

    SELECT *
    INTO mytable1
    FROM OPENDATASOURCE (
            'SQLNCLI'
            ,'Data Source=XXX.XX.XX.XXX;Initial Catalog=mydb2;User ID=XXX;Password=XXXX'
            ).[mydb2].dbo.mytable2

        /*  steps - 
            1-  [mydb1] means our opend connection database 
            2-  mytable1 means create copy table in mydb1 database where we want 
                insert record
            3-  XXX.XX.XX.XXX - another server name.
            4-  mydb2 another server database.
            5-  write User id and Password of another server credential
            6-  mytable2 is another server table where u fetch record from it. */
Sagar Mahajan
fonte
6

Podes tentar

Insert into your_table_in_db1 select * from your_table_in_db2@db2SID 

db2SID é o sid de outro banco de dados. Estará presente no arquivo tnsnames.ora

Sandy quem
fonte
1
INSERT
INTO    remotedblink.remotedatabase.remoteschema.remotetable
SELECT  *
FROM    mytable

Não existe "o fim da tabela" em bancos de dados relacionais.

Quassnoi
fonte
1

Principalmente, precisamos desse tipo de consulta no script de migração

INSERT INTO  db1.table1(col1,col2,col3,col4)
SELECT col5,col6,col7,col8
  FROM db1.table2

Nesta consulta a contagem de colunas deve ser a mesma em ambas as tabelas

Akshay Bhardwaj
fonte
0

Se ambas as tabelas tiverem o mesmo esquema, use esta consulta: inserir em database_name.table_name select * from new_database_name.new_table_name where = 'condition'

Substitua database_name pelo nome de seu primeiro banco de dados e table_name pelo nome da tabela da qual deseja copiar também substitua new_database_name pelo nome de seu outro banco de dados onde deseja copiar e new_table_name é o nome da tabela.

Ghazali
fonte
0

Apenas faça.....

(Ele criará a mesma estrutura de tabela de uma tabela para outra com os mesmos dados)

 create table toDatabaseName.toTableName as select * from fromDatabaseName.fromTableName;
Imranmadbar
fonte
0

Para o SQL Server, você pode usar a ferramenta Importar Dados de outro Banco de Dados, é mais fácil configurar colunas de mapeamento.

Lê Văn Hiếu
fonte