sql-如何将表值从一个数据库插入到另一个数据库?
如果目标表已经存在,我希望查询将记录从一个表插入到另一个数据库的另一个表中,它应该将记录追加到表的末尾。
7个解决方案
116 votes
这个怎么样:
USE TargetDatabase
GO
INSERT INTO dbo.TargetTable(field1, field2, field3)
SELECT field1, field2, field3
FROM SourceDatabase.dbo.SourceTable
WHERE (some condition)
marc_s answered 2019-10-01T22:05:22Z
26 votes
如何将表值从一个服务器/数据库插入到另一个数据库?
1创建链接服务器{如果需要}(SQL Server 2008 R2-2012)[http://technet.microsoft.com/en-us/library/ff772782.aspx#SSMSProcedure]
2配置链接服务器以使用凭据a)[http://technet.microsoft.com/es-es/library/ms189811(v=sql.105).aspx]
EXEC sp_addlinkedsrvlogin 'NAMEOFLINKEDSERVER', 'false', null, 'REMOTEUSERNAME', 'REMOTEUSERPASSWORD'
-检查服务器
SELECT * FROM sys.servers
-测试链接服务器
EXEC sp_testlinkedserver N'NAMEOFLINKEDSERVER'
插入新的本地表
SELECT * INTO NEWTABLE
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
要么
作为新值插入到远程表中
INSERT
INTO [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
SELECT *
FROM localTABLE
作为新的本地表值插入
INSERT
INTO localTABLE
SELECT *
FROM [LINKEDSERVER\INSTANCE].remoteDATABASE.remoteSCHEMA.remoteTABLE
OzzKr answered 2019-10-01T22:06:31Z
9 votes
这是一种快速简便的方法:
CREATE TABLE database1.employees
AS
SELECT * FROM database2.employees;
Cillín answered 2019-10-01T22:06:54Z
6 votes
--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 answered 2019-10-01T22:07:11Z
5 votes
你可以试试
Insert into your_table_in_db1 select * from your_table_in_db2@db2SID
db2SID是其他数据库的sid。 它将出现在tnsnames.ora文件中
sandywho answered 2019-10-01T22:07:36Z
1 votes
INSERT
INTO remotedblink.remotedatabase.remoteschema.remotetable
SELECT *
FROM mytable
关系数据库中没有“表的末端”之类的东西。
Quassnoi answered 2019-10-01T22:08:00Z
0 votes
如果两个表具有相同的架构,则使用此查询:插入到database_name.table_name中,从new_database_name.new_table_name选择*,其中='condition'
将database_name替换为您的第一个数据库的名称,并将table_name替换为您要从中复制的表的名称还将new_database_name替换为您要复制的其他数据库的名称,而new_table_name是表的名称。
Ghazali Shacklebolt answered 2019-10-01T22:08:30Z