日期:2014-05-18  浏览次数:20903 次

select into 如何跨服务器使用?
有两个服务器A,B
在A中 select * from B.b.dbo.b可以得到B.b.dbo.b的内容

但是 select * into B.b.dbo.bb from a.dbo.a 就会报错。

The object name ‘B.b.dbo.b’contains more than the maximum number of prefixes. The maximum is 2.

但是如果用 insert into B.b.dbo.b select * from a.dbo.a就是可以的但是这种方法奇慢无比。

------解决方案--------------------
在B这边执行

SQL code
SELECT * INTO BB FROM A.A.DBO.A

------解决方案--------------------
或者在B这边执行

SQL code
insert into BB select * from A.a.dbo.a

------解决方案--------------------
先在B上创建表 然后再 insert into B.b.dbo.b select * from a.dbo.a

select * into B.b.dbo.bb from a.dbo.a 这种会锁系统表,如果数据量大很容易死锁,影响性能。

而 insert into B.b.dbo.b select * from a.dbo.a 这种不会锁系统表
------解决方案--------------------
链接服务器这种方式本来就是不推荐的,数据量稍大性能就有问题


------解决方案--------------------
1,使用链接服务器(不同机上上的数据库)
2,代码实现 
3,导入导出