在SQL Server 2008中的触发器中定义了几个变量,保存完成正常生效。

当将该触发器在SQL Server 2005中的保存时,则提示不能向局部变量赋予默认值。

经过网络查找后发现,这也是SQL Server 2005和SQL Server 2008中关于变量使用的一个区别:

DECLARE @RepeatCount int = 0;
DECLARE @OperationType int = 3;
sql2005中会提示错误 ”不能向局部变量赋予默认值。“
解决方法:
DECLARE @RepeatCount int;
set @RepeatCount = 0;

DECLARE @OperationType int;
set @OperationType = 3;
-----------------------------------
原因:
变量在定义中初始化, 是 2008才开始的
你可以在循环前,使用 SET 或者SELECT 语句初始化一下就行, 不要在定义中初始化

标签: SQL Server, 不能向局部变量赋予默认值, SQL Server 2008, SQL Server不能向局部变量赋予默认值, SQL Server 2005, SQL Server 2005不能向局部变量赋予默认值

添加新评论