sql sql server 鏈接服務(wù)器(oracle,db2)
首先要安裝.net 連接oracle、db2的驅(qū)動(dòng),然后一步一步設(shè)置 或者通過(guò)ssms圖形界面實(shí)現(xiàn)
連接oracle ,create 方式sql server腳本
use [master]
go
/* object: linkedserver [自己為鏈接服務(wù)器起個(gè)名字] script date: 2016/6/1 21:13:09 */
exec master.dbo.sp_addlinkedserver @server = n’自己為鏈接服務(wù)器起個(gè)名字’, @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’自己為鏈接服務(wù)器起個(gè)名字’,@useself=n’false’,@locallogin=null,@rmtuser=n’用戶名’,@rmtpassword=’########’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’collation compatible’, @optvalue=n’false’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’data access’, @optvalue=n’true’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’dist’, @optvalue=n’false’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’pub’, @optvalue=n’false’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’rpc’, @optvalue=n’true’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’rpc out’, @optvalue=n’true’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’sub’, @optvalue=n’false’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’connect timeout’, @optvalue=n’0’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’collation name’, @optvalue=null
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’lazy schema validation’, @optvalue=n’false’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’query timeout’, @optvalue=n’0’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’use remote collation’, @optvalue=n’true’
go
exec master.dbo.sp_serveroption @server=n’自己為鏈接服務(wù)器起個(gè)名字’, @optname=n’remote proc transaction promotion’, @optvalue=n’true’
go
連接db類似
需要注意連接db2,必須要求sql server的版本為企業(yè)版,或者評(píng)估版,其他版本一律不行。
查詢方式例子
select * from openquery(鏈接服務(wù)器名稱,’select * from 表名’)
鏈接服務(wù)器傳參數(shù) 可以這樣(引用)
set @sql = ‘select * from 表名 where seq_num =’ @v_seq_num
set @sql = ‘update openquery(連接服務(wù)器名稱, ”’ replace(@sql, ””, ”””) ”’) set msg_type =”’ @v_msg_type ”’, msgerror =”’ @v_error_msg ”’ ’
exec(@sql)
@v_seq_num 為為傳入的參數(shù)
db2 使用方法類似。