sqlserver2017 debug调试

在遇到复杂的SQL存储过程导致的搜索界面错误时,通过在本地环境中复现问题并逐步调试,解决了因变量长度不足引发的错误。

昨天开发的时候遇到一个问题,具体来说,有一个搜索界面,有很多搜索条件,当我的搜索条件填写到一定量时,然后点击搜索按钮,会发现报错,界面上提示类似“Server error”的内容。经过一番尝试后,发现存储过程可能会有问题,但是这个存储过程有点复杂,所以就想到存储过程能否被调试,如果可以调试的话,就会容易很多。

查过资料之后,发现在sqlserver2008中可以调试,问了下同事,直接给了2017版的安装包。安装好就连接了本地的DB和远程的DB。

首先尝试在远程DB中调试,会提示权限不足,就放弃了这种尝试。

我之后在本地创建了一个相同的存储过程,并且把存储过程中涉及的表,也通过执行建表命令来实现。

之后,还要改下存储过程,可以一边debug一边发现提示信息,去掉一些不必要的存储过程片段,并且初始化参数的类型和初始值,直到可以debug为止。

初始化参数的类型可以通过在DECLARE关键字下面声明,例如:@a varchar(100), ...

初始化参数或变量的值通过SET关键字,例如 SET @a='123'

最终发现是最终执行的sql语句中用到的变量给的空间不够,原来的varchar(1000),但实际上可能会超过这个范围,所以就设置成了4000,一切就ok了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值