一、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