在日常工作中,经常涉及到跨库操作,为使跨数据库的操作变得更加灵活高效,我们可以在 SQL Server 中建立数据库链接( DB Link),实现 SQL Server 数据库与其他数据库(如 Oracle, MySQL 等)的连接,以便进行数据查询、插入、更新等操作。
什么是链接服务器(Linked Server)?
链接服务器是 SQL Server 提供的一项功能,允许用户从 SQL Server 实例中访问其他 SQL Server 或非 SQL Server 数据源(如 Oracle、MySQL 等)。通过链接服务器,用户可以执行跨数据库查询,实现数据共享。
在本文中,我们将探讨如何为 SQL Server 创建一个 DB Link,并提供相应的代码示例。
数据库链接的建立步骤
1. 安装必要的驱动程序
在建立链接之前,确保 SQL Server 安装了与目标数据库相连接所需的 OLE DB 驱动程序。例如,如果要连接 Oracle 数据库,需安装 Oracle OLE DB Provider。如果是 MySQL,则需安装 MySQL ODBC Driver。
2. 创建 Linked Server
2.1 通过 SQL Server Management Studio (SSMS) 创建 Linked Server
步骤如下:
- 打开 SSMS,连接到目标 SQL Server 实例。
- 在对象资源管理器中,找到 “服务器对象”。
- 右键点击 “链接服务器”,选择 “新建链接服务器”。
2.2 通过T-SQL创建 Linked Server
EXEC sp_addlinkedserver @server='REMOTE_SERVER', @srvproduct='', @provider='SQLNCLI', @datasrc='remote_data_source';EXEC sp_addlinkedsrvlogin @rmtsrvname='REMOTE_SERVER', @useself='false', @rmtuser='remote_username', @rmtpassword='remote_password';
REMOTE_SERVER :定义新的 Linked Server 名称,既将要连接的服务器名称
remote_data_source: 数据源的地址
remote_username:目标数据库用户
remote_password:目标数据库用户密码
举例如下,在SQL Server数据库执行:
EXEC sp_addlinkedserver @server='SOURCEDB', @srvproduct='', @provider='SQLNCLI', @datasrc='10.192.128.10';EXEC sp_addlinkedsrvlogin @rmtsrvname='SOURCEDB', @useself='false', @rmtuser='testuser', @rmtpassword='testuser';
3. 查询外部数据
创建链接服务器后,可以直接使用四部分名称形式进行查询:
SELECT * FROM OPENQUERY(REMOTE_SERVER, 'SELECT * FROM remote_table');
举例如下,查询远端目标数据库ABLE1的全部数据:
SELECT * FROM OPENQUERY(SOURCEDB, 'SELECT * FROM TABLE1');
参考:
https://blog.51cto.com/u_16213340/12531593
https://blog.51cto.com/u_16213372/12240219