SQL Server跨服務(wù)器查詢的實(shí)現(xiàn)方法
SQL Server跨服務(wù)器查詢的方法我們經(jīng)常需要用到,下面就為您介紹兩種SQL Server跨服務(wù)器查詢的方法,如果您感興趣的話,不妨一看。
SQL Server跨服務(wù)器查詢方法一:
用OPENDATASOURCE
下面是個跨SQLServer查詢的示例
Select TableA.*,TableB.* From OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerA;User ID=UserID;Password=Password'
).databaseAName.dbo.TableA
Left Join
OPENDATASOURCE(
'SQLOLEDB',
'Data Source=ServerB;User ID=UserID;Password=Password'
).databaseBName.dbo.TableB On TableA.key=TableB.key
下面是個查詢的示例,它通過用于 Jet 的 OLE DB 提供程序查詢 Excel 電子表格。
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
SQL Server跨服務(wù)器查詢方法二(也可以在企業(yè)管理器里添加 linkServer):
sp_addlinkedserver
創(chuàng)建一個鏈接的服務(wù)器,使其允許對分布式的、針對 OLE DB 數(shù)據(jù)源的異類查詢進(jìn)行訪問。在使用 sp_addlinkedserver 創(chuàng)建鏈接的服務(wù)器之后,此服務(wù)器就可以執(zhí)行分布式查詢。如果鏈接服務(wù)器定義為 Microsoft? SQL Server?,則可執(zhí)行遠(yuǎn)程存儲過程。
語法
sp_addlinkedserver [ @server = ] 'server'
[ , [ @srvproduct = ] 'product_name' ]
[ , [ @provider = ] 'provider_name' ]
[ , [ @datasrc = ] 'data_source' ]
[ , [ @location = ] 'location' ]
[ , [ @provstr = ] 'provider_string' ]
[ , [ @catalog = ] 'catalog' ]
權(quán)限
執(zhí)行許可權(quán)限默認(rèn)授予 sysadmin 和 setupadmin 固定服務(wù)器角色的成員。
簡單示例:
//創(chuàng)建linkServer
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','服務(wù)器名'
//登陸linkServer
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'用戶名','密碼'
//查詢linkServer的數(shù)據(jù)庫DataBaseA的表TableA
Select * From srv_lnk.DataBaseA.dbo.TableA
//List the tables in the linked server
EXEC sp_tables_ex txtsrv
【編輯推薦】