sqlserver 2008,2012哪些不兼容2005的,sql语法上?
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的用法,如上。