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