语法
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''');