SQL Server 链接服务器(Oracle,DB2)

  • 来源:新网
  • 更新日期:2018-03-14

摘要:SQL SQL Server 链接服务器(Oracle,DB2)首先要安装.Net 连接Oracle、DB2的驱动,然后一步一步设置 或者通过SSMS图形界面实现连接Oracle ,Create 方式SQL Server脚本 USE [master] GO/* Object: LinkedServer [自己为链接服务器起个名字] Script Date: 2016/6/1 21:13:

SQL SQL Server 链接服务器(Oracle,DB2)

首先要安装.Net 连接Oracle、DB2的驱动,然后一步一步设置 或者通过SSMS图形界面实现

t0158212b5058d0ed2b.jpg

连接Oracle ,Create 方式SQL Server脚本
USE [master]
GO

/* Object: LinkedServer [自己为链接服务器起个名字] Script Date: 2016/6/1 21:13:09 */
EXEC master.dbo.sp_addlinkedserver @server = N’自己为链接服务器起个名字’, @srvproduct=N’Oracle’, @provider=N’OraOLEDB.Oracle’, @datasrc=N’Oracle用户名’
/* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N’自己为链接服务器起个名字’,@useself=N’False’,@locallogin=NULL,@rmtuser=N’用户名’,@rmtpassword=’########’

GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’collation compatible’, @optvalue=N’false’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’data access’, @optvalue=N’true’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’dist’, @optvalue=N’false’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’pub’, @optvalue=N’false’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’rpc’, @optvalue=N’true’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’rpc out’, @optvalue=N’true’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’sub’, @optvalue=N’false’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’connect timeout’, @optvalue=N’0’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’collation name’, @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’lazy schema validation’, @optvalue=N’false’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’query timeout’, @optvalue=N’0’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’use remote collation’, @optvalue=N’true’
GO

EXEC master.dbo.sp_serveroption @server=N’自己为链接服务器起个名字’, @optname=N’remote proc transaction promotion’, @optvalue=N’true’
GO

连接DB类似
需要注意连接DB2,必须要求SQL Server的版本为企业版,或者评估版,其他版本一律不行。
查询方式例子
SELECT * FROM openquery(链接服务器名称,’select * from 表名’)
链接服务器传参数 可以这样(引用)
SET @Sql = ‘SELECT * from 表名 where SEQ_NUM =’+@V_SEQ_NUM
SET @Sql = ‘Update OPENQUERY(连接服务器名称, ”’ + REPLACE(@Sql, ””, ”””) + ”’) SET MSG_TYPE =”’+@V_MSG_TYPE+”’, MSGError =”’+@V_ERROR_MSG+”’ ’
EXEC(@Sql)
@V_SEQ_NUM 为为传入的参数

DB2 使用方法类似。