執行另一服務器上的存儲過程
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
別名
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
表名
go
:如果在事務裡使用連接服務器要加上分布式事務
兩邊啟動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
From:http://tw.wingwit.com/Article/program/SQLServer/201311/21998.html