问题

想把SQLServer的数据库迁移到PgSql里面,因为两个数据库业务表的结构和字段都不一样,需要逐表进行按需抽取想要的字段并导入数据。

解决方案

可以在SqlServer里面创建链接服务器,链接到Pgsql的表,然后在SQLServer中把数据写入到Pgsql数据库。(SqlServer链接Mysql也是一样的方法)。

步骤1:创建ODBC数据源

在开始菜单中输入ODBC,找到ODBC64位数据源(我的是64位系统,如果后续链接服务器连接时提示架构不匹配,就要用ODBC32位来创建)。

在系统DSN中点击添加,选择PostgreSQL Unicode(x64)驱动,其他编码类型也是可以的。

如果这里没有看到postgresqlODBC驱动,需要安装一下。

输入数据源名称(创建链接数据库时需要用到),数据库名、IP、端口、登录账号密码。

点击test,会提示验证成功。然后确定后退出ODBC数据源创建成功。

SQLServer连接Pgsql或mysql读写数据_数据库

步骤2:创建SqlServer链接服务器

在SqlServer企业管理器中,右击服务器对象》链接服务器 ,新建链接服务器。 (下图为创建后的信息)

1.在常规页面中:输入链接服务器的别名和刚才创建的ODBC数据源名称。 

SQLServer连接Pgsql或mysql读写数据_数据库_02

2.点击左边切换到安全性页面:输入pgsql的登录账号密码。确定后,链接服务器创建成功。

SQLServer连接Pgsql或mysql读写数据_postgresql_03

步骤3:读写Pgsql数据库

在SqlServer中读写pgsql的数据,sq查询语句的格式为: 

Select * From [链接服务器名].[远程数据库名].[所有者].[表名]

示例如下:

select * from [MHZLS_PG].[db_fee_mhzls].[public].[menu]

SQLServer连接Pgsql或mysql读写数据_sqlserver_04

以上,完毕。