问题描述:
日本数据库服务器中有两个数据库A,B
现在要将B数据库迁移到中国,
但是A,B之间有表的关联。
实现结果:
A,B之间的数据库实现同时更新。
解决方案:
采用SQLServer中的link server
实现步骤:
1 建立与日本方的link server,日方服务器为:172.18.1.6;取别名:linkServerJP
语法为
sp_addlinkedserver N'linkServerJP', ' ', N'SQLOLEDB', N'172.18.1.6'
2 将本地用户sa 访问权限映射到名为 linkServerJP 的链接服务器上的 SQL Server 授权登录 Visitor。
假设 用户名为:develop 密码为:password
语法为
sp_addlinkedsrvlogin N'linkServerJP', false, N'sa', N'develop', N'pssword'
3 远端数据库访问方式: 服务器名.数据库名.dbo.表名
例如 linkServerJP.test.dbo.student
简单举例:
查询日本服务器上的student表
select username from linkServerJP.test.dbo.student;
其他操作类同
参考资料:
http://topic.csdn.net/t/20021101/10/1138996.html
创建链接服务器以访问 SQL Server 数据库
执行
sp_addlinkedserver 创建链接服务器,指定 SQLOLEDB 作为 provider_name,指定运行
SQL Server 远程实例的服务器的网络名称作为 data_source。
例如,若要创建一个名为 LinkSQLSrvr 的链接服务器,以便对运行于网络名称为 NetSQLSrvr 的服务器上的 SQL Server 实例进行操作,请执行:
sp_addlinkedserver N'LinkSQLSrvr', ' ', N'SQLOLEDB', N'NetSQLSrvr'
将每个需要访问链接服务器的本地 SQL Server 登录映射为链接服务器上的 SQL Server 授权登录。
下例将本地登录 Joe 的访问权限映射到名为 LinkedSQLSrvr 的链接服务器上的 SQL Server 授权登录 Visitor。
sp_addlinkedsrvlogin N'LinkSQLSrvr', false, N'Joe', N'Visitor', N'VisitorPwd'
对运行 SQL Server 7.0
版或更早版本的服务器执行分布式查询时,必须升级早期版本上的目录存储过程,以确保分布式查询可以正常运行。例如,如果服务器运行的是 SQL
Server 7.0 版实例,则在可以从运行 SQL Server 2000
实例的服务器中的分布式查询内引用目录存储过程之前,必须将它升级到 SQL Server
2000。有关更多信息,请参见升级目录存储过程 (OLE DB)。
更新远程 SQL Server 表时,本地服务器或客户端不接收为该更新而激发的触发器所产生的任何结果集或消息。
当使用四部分的名称时,一定要指定架构名称。没有在分布式查询中指定架构名称将会禁止 OLE DB
查找表。当引用本地表时,如果未指定所有者姓名,SQL Server 将使用默认值。下列 SELECT 语句将产生 7314
号错误,即使链接服务器登录映射为链接服务器上 Northwind 数据库中的用户 dbo。
sp_addlinkedserver @server = N'LinkServer',
@srvproduct = N' ',
@provider = N'SQLOLEDB',
@datasrc = N'ServerNetName',
@catalog = N'Northwind'
GO
SELECT *
FROM LinkServer.Northwind..Shippers
下面的示例定义了链接服务器和远程服务器,它们都访问网络名称为 othersite 的同一台计算机。链接服务器定义使用与远程服务器的网络名称相同的名称;而远程服务器定义则使用其它名称。
/* Create a linked server definition to othersite. */
EXEC sp_addlinkedserver 'othersite', N'SQL Server'
/* Create a remote server definition using a
fictitious name. */
EXEC sp_addserver 'RPCothersite'
/* Set the fictitious nameto the network name faraway. */
EXEC sp_setnetname 'RPCothersite', 'othersite'
然后,就可以在分布式查询或者远程过程调用中引用这两个名称。
/* A distributed query referencing othersite. */
SELECT *
FROM othersite.Northwind.dbo.Employees
/* A remote procedure call to the same server. */
EXEC RPCothersite.master.dbo.sp_who
/* Distributed queries can be used to execute
stored procedures on the other server. */
EXEC othersite.master.dbo.sp_who
通过链接服务器执行的存储过程和通过远程服务器执行的存储过程之间的登录映射机制不同。
链接 SQL Server 中的事务考虑事项
用于 SQL Server 的 Microsoft OLE DB
提供程序不支持嵌套事务。因此,对于隐性或显式事务的内部数据修改操作和分布式分区视图上的数据修改操作,应将 XACT_ABORT 设置为
ON。
在隐性或显式事务或分布式分区视图内部,不支持对同一 SQL Server 实例的环回连接。
分享到:
相关推荐
在某些特定情况下,如在没有互联网连接的服务器或者网络环境受限的环境中,我们需要使用离线安装包来安装 SQL Server。"sqlserver离线安装包" 提供了这样一种解决方案,使得我们可以在无网络的情况下完成 SQL Server...
压缩包内附带链接服务器创建脚本方式,此SQL Server Native Client 10.0无病毒,有64位和32位可供选择。SQL Server Native Client 11.0 不支持连接到 SQL Server 2000 或更早的版本。 通过安装SQL Server Native ...
在SQL Server课程设计案例中,我们可以深入学习和理解SQL Server这一强大的关系型数据库管理系统。SQL Server是由Microsoft开发的,广泛应用于企业级数据管理和分析。它提供了丰富的功能,包括数据存储、查询、报表...
1.SQL Server 2014简介.mp4 10.SQL Server 2014定义表主键、外键.mp4 11.SQL Server 2014新增表记录.mp4 12.SQL Server 2014查询表记录.mp4 13.SQL Server 2014修改表记录.mp4 14.SQL Server 2014删除表记录....
使用mysql odbc后就比较好办,可以使用sql server的管理工具,也可以使用mysql的管理工具,更可以使用其它方的管理工具。这里介绍一个使用sql的mmc的方法 ,将sql server的数据转化为mysql的数据库,将源和目的反之...
创建完链接服务器后,可以在T-SQL中使用`OPENQUERY`或`EXEC()`命令测试连接。例如: ```sql SELECT * FROM OPENQUERY(PostgreSQLLink, 'SELECT * FROM public.your_table'); ``` 如果一切配置正确,你应该能从...
3. **Transact-SQL与OPENROWSET函数**:在SQL Server中,可以通过Transact-SQL查询数据,并使用OPENROWSET函数将结果集转换为文本或XML格式,然后利用外部程序(如Word)进行处理。例如,可以使用BULK INSERT或...
在“Microsoft SQL Server Management Stdio”中,展开"SQL Server 组",鼠标右键点击 SQL Server 服务器的名称,然后选择"属性",再选择"安全性"选项卡,在"身份验证"下,选择"SQL Server 和 Windows 身份验证模式...
Sql Server 2005 打开 Sql Server 2008 mdf 文件数据库转换是指将 Sql Server 2008 中的数据库文件(mdf 文件)转换为 Sql Server 2005 可以识别的格式,以便在 Sql Server 2005 中使用。这种转换过程需要使用 Sql ...
SQL Server 2019是Microsoft推出的一款关系型数据库管理系统,是SQL Server系列中的一个重要版本。它提供了强大的数据存储、处理和分析能力,广泛应用于企业级数据库应用开发和数据分析。在本安装包中,主要包含的是...
在32位操作系统中,SQL Server 2005可以使用 Address Windowing Extensions(AWE)来访问超过4GB的物理内存。AWE是一种机制,可以让32位操作系统访问超过4GB的物理内存,但需要在操作系统和SQL Server中进行特殊配置...
- 在 SQL Server Management Studio (SSMS) 中,右键点击目标 SQL Server 实例,选择“属性” -> “内存”。 - 在“最大服务器内存 (MB)”字段中设置所需的值。 - 可以根据实际情况定期检查并调整该值,以确保 ...
在SQL Server 2012中,虽然主要推荐使用SQL Server Native Client 11.0,但为了兼容旧版本的SQL Server,如SQL Server 2000,仍然需要使用SQL Server Native Client 10.0。 **1. ODBC与OLE DB接口** - **ODBC**: ...
在本例中,我们关注的JAR包是`sqljdbc42.jar`,它是微软官方提供的SQL Server JDBC驱动的一个版本,特别针对JDK 1.8进行了优化。`sqljdbc42.jar` 支持JDBC 4.2规范,允许Java应用程序通过JDBC接口与SQL Server进行...
为了将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中,我们需要使用Java 语言和 JDBC 驱动程序。下面是一个示例代码,演示如何将 SQL Server 中的 Image 类型数据导出到 Oracle 的 CLOB 字段中: ...
在 SQL Server 2008 中,如果我们要导入超大 SQL 脚本文件(超过 10MB),使用 SQL Management Studio 查询工具可能无法打开脚本文件。这时,我们可以使用 osql 工具来导入超大 SQL 脚本文件。 osql 工具的使用格式...
此外,了解 SQL Server 特有的特性,如存储过程、视图、触发器等,以及如何在 Kettle 中使用它们进行数据处理也是很重要的。Kettle 支持 SQL 查询的执行,可以用于执行 DML(数据操纵语言)操作,比如 INSERT、...
在SQLSERVER数据库的使用过程中,有时会出现一个棘手的问题,即驱动程序无法通过安全套接字层(SSL)加密与SQL Server建立安全连接。这个问题通常表明数据库连接在尝试使用SSL进行加密时遇到了障碍,可能影响数据的...