我试图像这样声明局部变量:
DECLARE @thresholdDate DATETIME = '2014-11-30'
而且我得到了错误:
无法将默认值分配给局部变量。
根据文档:
DECLARE @find varchar(30); /* Also allowed: DECLARE @find varchar(30) = 'Man%'; */
我做错了什么?
在SQL Server 2008之前,不允许将默认值(或初始值)分配给局部变量。否则将遇到此错误消息。
解决方案1 :( 使用SET)
SET
DECLARE @thresholdDate DATETIME set @thresholdDate = '2014-11-30'
有关该错误的更多详细信息:http : //www.sql-server-helper.com/error- messages/msg-139.aspx
解决方案2: ( 升级 )
避免此错误的另一种方法(有点牵强的解决方案)是升级到SQL Server2008。SQLServer 2008现在允许在DECLARE语句中为变量分配值。