本文转自微信公众号“瀚高数据库售前团队”文章
https://mp.weixin.qq.com/s/-wZx7Mni6D_n29LlrxlhYg
声明:
本文章内容仅用于学习、交流,未经本团队允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的,利用此文所提供的信息而造成的任何直接或间接的损失,均由使用者本人负责。
本次分享在Win环境下SqlServer通过odbc连接瀚高数据库V456版本并手动同步数据的实战操作。
1. ODBC安装
Win下面安装32和64位的HGDB的ODBC;
2. 创建ODBC数据源
系统DSN中新建数据源 PostgreSQL456;
测试连接;
点击Save进行保存;
3. SqlServer连接HGDB
打开Microsoft SQL Server Management Studio;
连上到SqlServer;
点击服务器对象–链接服务器–右键新建链接服务器;
访问接口-> Microsoft OLE DB Provider for ODBC Drivers;
数据源 -> 为ODBC链接对象DataSource 名称;
点击安全性,选择使用此安全上下文建立链接,输入HGDB的登陆账号、密码,点击链接成功。
点击确定;
右键测试连接;
注:ODBC数据源必须在系统DSN中创建,如果在用户DSN中,会报错:无法初始化链接服务器“HGDB456”的 OLE DB 访问接口“MSDASQL”的数据源对象。(.Net SqlClient Data Provider)
展开链接服务器,可以看到HGDB的表;
4. 查询测试
SqlServer查询:
select * from openquery(HGDB456,'select * from student;')
HGDB查询:
select * from student;
5. 在SqlServer中对HGDB操作
操作前:
HGDB查询:
select * from test1 order by id ;
在SqlServer中执行:
INSERT INTO [HGDB456].[testdb].[public].[test1] values (123,'AA');
操作后:
HGDB查询:
select * from test1 order by id ;
- 将SqlServer数据同步到HGDB
同步前:
HGDB查询;
select * from test1 order by id ;
SqlServer查询:
select * from test1;
在SqlServer中执行:
INSERT INTO [HGDB456].[testdb].[public].[test1] select * from test1;
同步后:
HGDB查询:
select * from test1 order by id ;
7. 将SqlServer数据同步到HGDB-有则新增无则更新
同步前:
HGDB查询:
select * from test1;
SqlServer查询:
select * from test1;
在SqlServer中执行:
if exists(select * from [HGDB456].[testdb].[public].[test1] where id = 1)
update [HGDB456].[testdb].[public].[test1] set fname ='AAA+++' where id = 1;
else
INSERT INTO [HGDB456].[testdb].[public].[test1] select * from test where id = 1;
同步后:
HGDB查询:
select * from test1;
在SqlServer中再次执行后,HGDB查询:
select * from test1;
至此,手动同步数据完成。