一、SqlServer跨数据库查询SqlServer
SELECT * FROM OPENDATASOURCE('SQLOLEDB',
'server=服务器ID(比如:192.168.1.1);uid=用户名;pwd=密码;database=数据库名').数据库名.dbo.表名
WHERE 条件
二、SqlServer跨数据库查询Oracle
1、配置Oracle的TNS
2、
IF NOT EXISTS(SELECT * FROM sys.servers WHERE server_id <>0 AND name = 'abc')--abc是自定义别名
--1.添加链接服务器
EXEC sp_addlinkedserver
@server='abc',
@srvproduct='Oracle',
@provider='MSDAORA',--32位SQLSERVER连接64位ORACLE时用MSDAORA
--@provider='OraOLEDB.Oracle',--64位SQLSERVER连接64位ORACLE时用OraOLEDB.Oracle
@datasrc='ERPDB' --TNS的别名
--2.为链接服务器设置默认连接密码
EXEC sp_addlinkedsrvlogin
@rmtsrvname='abc',
@useself='false',
--@locallogin='sa', --可注释
@rmtuser='sa', --Oracle数据库用户名
@rmtpassword='sa' --Oracle数据库密码
GO
--通过OPENQUERY方式查询数据
SELECT * FROM OPENQUERY(abc,'SELECT * FROM 表名')
--删除服务器连接
IF EXISTS (SELECT * FROM sys.servers WHERE server_id <> 0 AND name = 'abc')
EXEC sp_dropserver @server='abc', @droplogins='droplogins'
GO
浙公网安备 33010602011771号