PD不支持SQL Server 2005,怎么办?

前两天试用PD12的时候遇到一个奇怪的事情,不知道算不算是PD12的BUG。事情的经过是这样的:

后台数据库从SQL2000升级到SQL Server 2005(简体中文版),由于PD11不支持SQL2005,所以从Sybase下载了PD12的试用版,结果发现PD12不能Reverse数据库!

PD能够作反向工程的,有两个地方,(1)File - Reverse Engineer - Database,这个功能主要用于将数据库结构反向工程为PDM设计文档,一般只用一次,以后的设计变更就直接在PDM上做了。(2)打开一个PDM之后,点击菜单Database - Reverse Engineer Database,这个功能主要是用来比较PDM文档与实际数据库之间的结构上的差异,便于两者同步。

现在数据库换成SQL2005、PD换成V12以后(Sybase网站上有两个版本,12.0和12.1,我都试了,都有相同的毛病),Reverse的时候都提示“Unable to list Tables”,不能列出SQL2005中有哪些用户表!直接后果就是无法比较PDM设计文档和SQL2005数据库的结构差异! 

胖子刘

2006.10.16

====================================================================

在一个非常机缘巧合的情况下,我找到了问题的解决办法。

上面的问题是怎么产生的呢?

在配置ODBC的时候,连点两个“下一步”按钮后,在第3个页面中将“更改默认的数据库为”复选框选中,并从数据库列表中选中你要Reverse的数据库,就会出现这个问题。

如果取消“更改默认的数据库为”复选框的选中状态,问题解决!!!

同样的操作用在PD11和SQL2000环境下就没问题,所以当这对搭档升级为PD12和SQL2005之后,如果还沿用以前的习惯就会出错。不知道算不算是BUG!!!

前车之鉴,与大家共享。

胖子刘
2006.10.16

### 将 SQL Server 2016 的数据迁移至 SQL Server 2005 由于目标版本较低(SQL Server 2005),因此需要特别注意兼容性和文件格式的支持情况。以下是实现此操作的方法: #### 方法一:通过 SQL 脚本导出和导入 可以利用 SQL Server Management Studio (SSMS) 中的“生成脚本”功能来完成这一过程。 1. **导出数据库结构和数据** 使用 SSMS 连接到源服务器(SQL Server 2016)。右键点击要迁移的数据库,选择 `Tasks` -> `Generate Scripts...`。在向导中设置选项以包含架构和数据,并确保指定的目标服务器版本为 SQL Server 2005[^1]。 2. **执行生成的脚本** 将生成的 `.sql` 文件保存下来,在目标服务器上运行该脚本即可创建相应的数据库对象并插入数据[^2]。 #### 方法二:借助 bcp 工具进行批量复制 bcp 是一种命令行工具,能够高效地将大量数据从一个地方移动到另一个地方。 - 首先使用以下命令从 SQL Server 2016 导出数据: ```bash bcp YourDatabase.dbo.YourTable out C:\path\to\data.txt -c -t"," -U username -P password ``` - 接着把导出的数据文件传输给 SQL Server 2005 所处的位置,并用下面这条指令重新加载进去: ```bash bcp YourOtherDB.dbo.YourTable in C:\path\to\data.txt -c -t"," -U otherusername -P otherpassword ``` 需要注意的是,这种方法仅适用于表级别的迁移,对于存储过程、视图等功能则需单独处理[^3]。 #### 方法三:采用 Excel 或 CSV 文件作为中间媒介 如果遇到复杂场景或者某些特定需求无法满足时,还可以考虑先把数据转存成通用格式比如 Excel 表格或纯文本形式然后再读取回来。 ```python import pyodbc def export_to_excel(): conn_str = ( r'DRIVER={ODBC Driver 17 for SQL Server};' r'SERVER=source_server;' r'DATABASE=YourSourceDB;' r'UID=username;' r'PWD=password;' ) cnxn = pyodbc.connect(conn_str) cursor = cnxn.cursor() query = 'SELECT * FROM SomeTable' df = pd.read_sql(query, cnxn) writer = pd.ExcelWriter('output.xlsx') df.to_excel(writer,'Sheet1', index=False) writer.save() export_to_excel() ``` 之后按照类似方式编写针对目的端的操作逻辑。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值