SQL Server跨server执行select into

来源:互联网 发布:文件夹备份软件 编辑:程序博客网 时间:2024/06/18 11:14

前段时间遇到了这么一个情况:一共两个sql database server环境,A和B,交替使用;之前在server A中做了数据,现在在server B上做开发,因某些其他原因不方便直接切换sql server,而又想复用server A中正在使用的数据(其实就是懒得再重复做),所以想把server A中的某表内数据导入到server B中。

对于同server的数据,可以用下面的语句:

SELECT column1, column2, column3, ...INTO newtable [IN externaldb]FROM oldtableWHERE condition;

同server跨database也可以使用此语句,但跨server就不能使用了。

如果需要跨server(目的是将database engine A中的表数据导入到database engine B中),可以按照以下步骤,使用import功能来导数据

  1. 进入Microsoft SQL Server Management Studio,在Object Explorer窗口右击你的destination database(database engine B内),选择Tasks>Import Data…,之后会弹出下面的窗口:
    cross database server select into_1

  2. 点击Next后,输入source database server和credential,点击refresh后,选择source database(engine A内)

  3. 点击Next后,类似的选择或创建destination database(engine B内)

  4. 点击Next后,会出现两个选项:Copy data from one or more tables or views和Write a query to sprcify the data to tranfer,根据自己的需求选择对应选项即可

  5. 点击Next后,select需要导入destination database的数据,一直点Next直到Finish,而后执行


网上也有使用Linked Server的方案,按照步骤创建了linked server后,在linked server内也可以query remote engine内的数据。不过我做了测试,如果remote table内有xml这种字段类型的话,则执行query时会遇到以下错误:

Msg 9514, Level 16, State 1, Line 13Xml data type is not supported in distributed queries. Remote object 'linked_server.database_name.dbo.TableName' has xml column(s).

所以,还是更推荐import data

原创粉丝点击