小编典典

无法在SQL中为本地变量分配默认值

sql

我试图像这样声明局部变量:

DECLARE @thresholdDate DATETIME = '2014-11-30'

而且我得到了错误:

无法将默认值分配给局部变量。

根据文档

DECLARE @find varchar(30); 
/* Also allowed: 
DECLARE @find varchar(30) = 'Man%'; 
*/

我做错了什么?


阅读 184

收藏
2021-04-22

共1个答案

小编典典

在SQL Server 2008之前,不允许将默认值(或初始值)分配给局部变量。否则将遇到此错误消息。

解决方案1 ​​:( 使用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语句中为变量分配值。

2021-04-22