sqlserver2017 debug调试

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

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

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

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

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

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

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

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

1、本程序参考【SQL Server Management Studio】的操作习惯编写。 2、实时显示sql语法错误,定位错误代码,提示错误原因,方便修改调试。 3、可执行多条sql语句,或各种分组统计语句。前提是数据库支持该语法。 例1、执行简单的Sql语句:select,insert,delete,update 等 例2、[sqlserver2008]执行T-Sql语句: declare @aa int set @aa=123*2+456*3-789 select @aa 计算结果 例3、[sqlserver2008]使用统计函数compute,返回多组查询结果: select name,score from 学生成绩表 order by name compute sum(score),avg(score) by name 例4、[sqlserver2008]执行多行查询语句,返回多组查询结果: select name from 学生成绩表 select score from 学生成绩表 例5、[sqlserver2008]执行存储过程,返回查询结果及各参数值。 declare @aa int,@ret int exec @ret=p_update 1,1,@aa output select @aa 参数值,@ret 返回值 4、显示上述语句所得到的查询结果。 5、sql代码输入框中如果有【被选择文本】,则仅执行【被选择文本】部分的代码,以便对一组sql语句进行细化调试。 [升级日志] 0.0:实现大体框架,执行基本的sql语句与结果查询。 1.0:优化查询结果与错误提示。 1.1:优化sql语句执行机制,优化查询显示方法。 1.2:处理编辑框“被选择文本”属性不正确的bug。该bug表现为调试时与编译后“被选择文本”不一致。 1.3:修正当查询结果中的第一个记录集已关闭时,其它记录集不显示的bug。 1.4:增加功能:读入Execl和目录文件时,可以选择是否将第一行作为字段名。 1.5:修正因记录集非空导致的非查询类语句影响行数不显示的问题。 1.6:增加对MySql数据库的支持,增加MyODBC驱动安装与卸载功能。 1.7:加密数据库登录信息,以防密码泄露。 1.8:修正某些MDB数据库密码破解不正确的现象。 1.9:修正某些MDB数据库密码返回空文本的问题。 2.0:调整MDB数据库连接时输入密码的长度限制。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值