用openrowset串連遠程SQL或插入資料
--如果只是臨時訪問,可以直接用openrowset
--查詢樣本
SELECT * FROM OPENROWSET('SQLOLEDB','Data Source=ServerName;User ID=MyUID;Password=MyPass',資料庫名.dbo.表名)
--匯入樣本
SELECT * INTO 表 FROM OPENROWSET('SQLOLEDB','Data Source=ServerName;User ID=MyUID;Password=MyPass',資料庫名.dbo.表名)
--建立連結的伺服器
EXEC SP_ADDLINKEDSERVER 'srv_lnk','','SQLOLEDB','遠程伺服器名或ip地址'
EXEC SP_ADDLINKEDSRVLOGIN 'srv_lnk','false',null,'使用者名稱','密碼'
GO
--查詢樣本
SELECT * FROM srv_lnk.資料庫名.dbo.表名
--匯入樣本
SELECT * INTO 表 FROM srv_lnk.資料庫名.dbo.表名
--以後不再使用時刪除連結的伺服器
EXEC SP_DROPSERVER 'srv_lnk','droplogins'
GO
--下面的樣本訪問來自某個表的資料,該表在 SQL Server 的另一個執行個體中。
SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data Source=ServerName;User ID=MyUID;Password=MyPass').Northwind.dbo.Categories
下面是個查詢的樣本,它通過用於 Jet 的 OLE DB 提供者查詢 Excel 試算表。
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="c:Financeaccount.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
如果只是偶爾使用 就用opendatasource/openrowset, 固定的頻繁使用建linked server