Coder Perfect

What is the best way to copy table values from one database to another? [closed]

Problem

I’d want a query that will insert records from one table into another table in a different database, appending the records to the end of the destination table if the destination table already exists.

Asked by naveenkumar

Solution #1

How about this:

USE TargetDatabase
GO

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

Answered by marc_s

Solution #2

What is the best way to copy table values from one server/database to another?

1 If necessary, create linked servers (SQL server 2008 R2 – 2012) http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure

2 Set up Credentials on the associated server a) http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx

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

— CHECK SERVERS

SELECT * FROM sys.servers

TEST SERVERS THAT ARE LINKED

EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'

ADD TO A NEW LOCAL TABLE

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

OR

REMOTE TABLE: INSERT AS NEW VALUES

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

INSERT LOCAL TABLE VALUES AS NEW

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

Answered by OzzKr

Solution #3

Here’s a quick and simple way to do it:

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

Answered by CillĂ­n

Solution #4

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

Answered by Sagar Mahajan

Solution #5

You can try

Insert into your_table_in_db1 select * from your_table_in_db2@db2SID 

The sid of another database is db2SID. It’ll be in the tnsnames.ora file.

Answered by sandywho

Post is based on https://stackoverflow.com/questions/3502269/how-to-insert-table-values-from-one-database-to-another-database