众所周知,mssql是不会向后兼容。
要把SQL2005转换到sql2000。最大的问题是:要把用SQL2005特性实现的功能重新用SQL2000实现一遍。
1.表的转换。
不要用SQL2005自带的生成脚本工具转换,因为有个BUG。当你未选择“为所选数据库中的所有对象编写脚本”时,他的版本选择会出错,即使你在“为服务器版本编写脚本”中选择了SQL2000.他也会为SQL2005编写脚本。
所以建议用Microsoft sql server database publishing wizard 工具,他使用更加方便。
但是他有个缺点是,错误提示不够详细,所以可以两者结合使用。
根据他的错误提示,把SQL2005里有些字段类型修改成符合SQL2000标准的。然后生成脚本在SQL2000里执行一遍。就可以了。(可以最好选择只转换表结构,数据下次导入)
2.视图转换
表转换成功后,这步很容易转换。
3.函数转换
在工具里,选择所有函数,生成脚本,在sql2000里执行后,把执行不成功的函数找出来,修改成符合sql2000标准的语句。
4.存储过程转换
同样,照第三步操作
5.其他
程序集、用C#实现的存储过程等这些sql2000没有的功能,只好用sql语句重新实现一遍。
6.数据转换
在某些情况下,用MSSQL2005自带数据导入,导入数据到sql2000会报错。而MSSQL database publishing wizard 工具也不能生成数据插入脚本。
那么可以先用工具生成数据插入到MSSQL2005的脚本。然后在MSSQL2000里执行。一般情况下可以执行的。如果个别表报错,先把这些表的插入语句删除。再执行。
至此,转换已经成功完成了。
如果你MSSQL2005运用的sql2005特性越多,就会更加明白2005的优越性能。
CTE,TRY_CATCH 语句,ouput子语句,error_message.....等等都是SQL2005后才具有的。
本文出自 “wuxinjie” 博客
bitsCN.com声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com