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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐