天天看点

SQL中两台服务器间使用连接服务器(ZT)

sql中两台服务器间使用连接服务器

exec opendatasource(

  'sqloledb',

  'data source=远程ip;user id=sa;password=密码'

  ).库名.dbo.存储过程名

  

  2:将资料插入另一服务器上的表中

  select * into 本地库名..表名 from opendatasource(

  ).库名.dbo.表名

  insert 本地库名..表名 select * from opendatasource(

  或使用联结服务器:

  exec sp_addlinkedserver '别名','','msdasql',null,null,'driver={sql server};server=远程名;uid=用户;pwd=密码;'

  exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'

  go

  (请注意上面的两步要同时运行)

  然后你就可以如下:

  select * from 别名.库名.dbo.表名

  insert 库名.dbo.表名 select * from 别名.库名.dbo.表名

  select * into 库名.dbo.新表名 from 别名.库名.dbo.表名

  3:如果在事务里使用连接服务器要加上分布式事务:

  两边启动dtc

  set xact_abort on

  set ansi_null_dflt_on on

  set ansi_warnings on

  begin distributed transaction

  select * from opendatasource('msdasql','driver={sql server};server=ip;uid=sa;pwd=密码;').pubs.dbo.jobs

  commit tran