加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

不能向局部变量赋予默认值以及必须声明标量变量——sqlserver存

发布时间:2020-12-12 15:24:15 所属栏目:MsSql教程 来源:网络整理
导读:同事让我帮忙调试一个sqlserver存储过程,首先说一下环境:SQLSERVER 2005 报错信息如下: 消息 139,级别 15,状态 1,过程 PEditTableField,第 0 行 不能向局部变量赋予默认值。 消息 137,级别 15,状态 1,过程 PEditTableField,第 29 行 必须声明标量

同事让我帮忙调试一个sqlserver存储过程,首先说一下环境:SQLSERVER 2005

报错信息如下:

消息 139,级别 15,状态 1,过程 PEditTableField,第 0 行
不能向局部变量赋予默认值。
消息 137,级别 15,状态 1,过程 PEditTableField,第 29 行
必须声明标量变量 "@sqlEmpty"。
消息 137,级别 15,状态 1,过程 PEditTableField,第 31 行
必须声明标量变量 "@sqlEmpty"。

......

解析:

??????? 主要是在

?ALTER PROCEDURE [dbo].[PEditTableField]
@EditTableName Nvarchar(200),--表名
......
AS
BEGIN
SET NOCOUNT ON

BEGIN TRANSACTION--开始事务
DECLARE @errorSun INT --定义错误计数器
SET @errorSun=0 --没错为0
declare @sqlEmpty Nvarchar(100)='' --sql语句中设置是否为空的字符串x

......

END

可以看到

declare @sqlEmpty Nvarchar(100)=''

位于BEGIN...END里面,所以它属于局部变量。

根据它的报错信息,大概猜测可能要改为:

declare @sqlEmpty Nvarchar(100)

set @sqlEmpty =''

然后把语句中所有属于该类型的语句全部修改过来,运行,ok,还就这么通过了。^_^

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读