語法
sp_addlinkedserver [ @server= ] 'server' [ , [ @srvproduct= ] 'product_name' ] [ , [ @provider= ] 'provider_name' ] [ , [ @datasrc= ] 'data_source' ] [ , [ @location= ] 'location' ] [ , [ @provstr= ] 'provider_string' ] [ , [ @catalog= ] 'catalog' ] provider可選值【SQLNCLI | SQLOLEDB】->SQL Server、【OraOLEDB.Oracle】->Oracle、【MSDASQL】->POSTGRESQL、【 Microsoft.Jet.OLEDB.4.0】->EXCEL
--建立連接別名 exec master.dbo.sp_addlinkedserver @server = 'Oraclelink',--指定連接數據庫的別名 @srvproduct = 'oracle',--連接對象數據庫的產品 @provider = 'OraOLEDB.Oracle',--驅動器 @datasrc = 'HMDB0'--要訪問的服務器,oracle需提供tnsnames.ora配置的別名 go --登陸連接數據庫 exec master.dbo.sp_addlinkedsrvlogin @rmtsrvname = 'Oraclelink',--指定需登陸的數據庫連接別名 @locallogin = NULL,--本地服務器的登陸名,直接訪問Windows Server組成員 @useself = 'false',--關閉本地登陸,true值使用本地帳戶認證,會忽略rmtuser和rmtpassword參數 @rmtuser = 'dbmonitor',--登陸數據庫用戶名 @rmtpassword = 'xxxxxx'--登陸密碼 go --查詢oracle數據庫測試 --數據庫的格式必須是 連接別名..ORACLE用戶名.表名 select * from Oraclelink..DBMONITOR.UNIQUE_T; go --查看當前全部連接列表 exec sp_linkedservers --刪除linked server Exec sp_droplinkedsrvlogin Oraclelink,NULL --刪除連接服務器的登錄賬戶 Exec sp_dropserver Oraclelink --刪除連接數據庫別名
INSERT INSERT OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles') VALUES ('NewTitle'); UPDATE UPDATE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE id = 101') SET name = 'ADifferentName'; DELETE DELETE OPENQUERY (OracleSvr, 'SELECT name FROM joe.titles WHERE name = ''NewTitle''');