sql2005与sql2008 变量使用的一处区别 (不能向局部变量赋予默认值)

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  语句初始化一下就行, 不要在定义中初始化

 



你可能感兴趣的:(sql,Date)