zhouzangood

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

分类:

技术点:

相关文章: