执行另一服务器上的存储过程
exec OPENDATASOURCE(
SQLOLEDB
Data Source=远程ip;User ID=sa;Password=密码
)库名dbo存储过程名
将资料插入另一服务器上的表中
select * into 本地库名表名 from OPENDATASOURCE(
SQLOLEDB
Data Source=远程ip;User ID=sa;Password=密码
)库名dbo表名
insert 本地库名表名 select * from OPENDATASOURCE(
SQLOLEDB
Data Source=远程ip;User ID=sa;Password=密码
)库名dbo表名
或使用联结服务器:
EXEC sp_addlinkedserver 别名MSDASQLNULLNULLDRIVER={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表名
go
:如果在事务里使用连接服务器要加上分布式事务
两边启动dtc
setXACT_ABORT on
set ANSI_NULL_DFLT_ON on
set ANSI_WARNINGS on
BEGIN DISTRIBUTED TRANSACTION
select *from OPENDATASOURCE(MSDASQLDRIVER={SQL Server};SERVER=ip;UID=sa;PWD=密码;)pubsdbojobs
commit tran