sqlserver 2008,2012哪些不兼容2005的,sql语法上?

足球不是方的 2019-02-14 05:54:35
sqlserver 2005 和高版本的(2008,2012)比较,有哪些语法用法上的区别?

比如下面:

declare @date int = cast(convert(nchar(8),getdate(),112) as int)

sql2005中会提示错误 ”不能向局部变量赋予默认值。“

解决方法:

declare @date int

set @date = cast(convert(nchar(8),getdate(),112) as int)

-----------------------------------

原因:

变量在定义中初始化, 是 2008才开始的

你可以在循环前,使用 SET 或者SELECT 语句初始化一下就行, 不要在定义中初始化


现在有个系统要从2005升级到2012,数据库的表或者存储过程,可以通过 脚本导出(兼容)的方式,但是程序端代码嵌套的sql
就没办法了,有哪些升级前需要改的?有哪些是2008不兼容2005的用法,如上。

...全文
237 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吉普赛的歌 版主 2019-02-14
  • 打赏
  • 举报
回复
你都搞反了方向。 你要做的是升级而不是降级, 升级相对来说是容易的, 基本不会有问题。 我司曾经做过 2005 直接升级到 2014 , 基本上没有什么问题, 很轻松就上了。 你担心的话, 那就让QC在测试环境测试两周, 没问题再上生产。 降级才真正麻烦, 要考虑高版本语法低版本不兼容的问题。 另外, 你可以看一下 sqlserver2005 的生产库的兼容模式是不是 90 ? 如果是 90 , 那基本可以放心。 如果是 80 或 70, 那升级到 2012 了还是要完整测试一次。 不过, 强烈建议你升级 2014 , https://blog.csdn.net/yenange/article/details/50549937 不要搞什么 2012 。2012 业界的口碑不太好, bug 比较多。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧