Come inserire i valori della tabella da un database a un altro database? [chiuso]


91

Voglio una query per inserire record da una tabella a un'altra tabella in un database diverso se la tabella di destinazione esiste già, dovrebbe accodare i record alla fine della tabella.

Risposte:


160

Cosa ne pensi di questo:

USE TargetDatabase
GO

INSERT INTO dbo.TargetTable(field1, field2, field3)
   SELECT field1, field2, field3
     FROM SourceDatabase.dbo.SourceTable
     WHERE (some condition)

4
10 anni dopo ... ancora molto apprezzato.
Chris Catignani

@ChrisCatignani: grazie! Alcune risposte sono fatte per l'eternità ;-)
marc_s

34

Come inserire i valori della tabella da un server / database a un altro database?

1 Creazione di server collegati {se necessario} (SQL server 2008 R2 - 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure

2 configurare il server collegato per utilizzare le credenziali a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx

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

- CONTROLLA SERVER

SELECT * FROM sys.servers

- SERVER COLLEGATI AL TEST

EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'

INSERIRE NELLA NUOVA TABELLA LOCALE

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

O

INSERIRE COME NUOVI VALORI NELLA TABELLA REMOTA

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

INSERIRE COME NUOVA TABELLA LOCALE VALORI

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

10

Ecco un metodo semplice e veloce:

CREATE TABLE database1.employees
AS
SELECT * FROM database2.employees;

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. */

6

Puoi provare

Insert into your_table_in_db1 select * from your_table_in_db2@db2SID 

db2SID è il sid di un altro DB. Sarà presente nel file tnsnames.ora


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

Non esiste una cosa come "la fine della tabella" nei database relazionali.


1

Per lo più abbiamo bisogno di questo tipo di query nello script di migrazione

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

In questa query il numero di colonne deve essere lo stesso in entrambe le tabelle


0

Se entrambe le tabelle hanno lo stesso schema, utilizzare questa query: inserire in database_name.table_name selezionare * da new_database_name.new_table_name dove = 'condition'

Sostituisci nome_database con il nome del tuo primo database e nome_tabella con il nome della tabella da cui desideri copiare e sostituisci anche new_database_name con il nome dell'altro database in cui desideri copiare e new_table_name è il nome della tabella.


0

Fallo e basta.....

(Creerà la stessa struttura della tabella della tabella come della tabella con gli stessi dati)

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

0

Per SQL Server, è possibile utilizzare lo strumento Importa dati da un altro database, è più facile configurare le colonne di mapping.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.