[MSSQL]SQL Server2000存储过程调试

本文介绍了在SQL Server 2000中调试存储过程遇到的问题及解决方法。当存储过程在查询分析器中测试报错时,通过调试发现是由于SQL语句超出变量长度限制导致。此外,还提醒在调试过程中应避免使用SET NOCOUNT ON,并分享了解决在家远程调试失败的问题,即通过升级SQL Server 2000到SP4版本来修复错误。
摘要由CSDN通过智能技术生成

今天写了个存储过程,在查询分析器中测试报错:
这里写图片描述

这样的错误信息根本看不出错在哪边,只能用单步执行来追踪了。在查询分析器对象浏览器中找到要调试的存储过程,右键点击选择调试:
这里写图片描述

输入各个参数的值后开始调试(钩选自动回滚调试完毕后将回滚操作):
这里写图片描述

按F11单步执行:
这里写图片描述

终于找到错误的位置了:
这里写图片描述

这里写图片描述

修改存储过程,输出@strSQL的值,才发现原来是声明的时候设置@strSQL的长度为300,而拼接的SQL语句太长了,长出的部分被截断才导致出错,OK,将@strSQL长度增加,问题解决!

说明:如果在存储过程中有SET NOCOUNT ON语句,在调试过程中应注释掉,在本次调试过程中发现有SET NOCOUNT ON调试器遇错会继续执行,也不报错!

在SQL Server联机丛书中说明:建议不要在生成服务器上使用 Transact-SQL 调试程序。在步骤执行模式下,调试程序会锁定其它进程所需的某些系统资源。

2008-07-31补充:

晚上在家里运行调试器失败,提示:
引用内容
服务器: 消息 508,级别 16,状态 1,过程 sp_sdidebug,行 1
[Microsoft][ODBC SQL Server Driver][SQL Server]无法连接到 LF-CBIXQUB2CZ5G 上的调试程序(错误 = 0x800401f3)。请确保已在 LF-CBIXQUB2CZ5G 上安装并注册了客户端组件(如 SQLLE.DLL)。已禁用对 52 的调试。

百度了下,大都是说将MSSQLSERVER服务的登录方式设置为一个windows帐户或是将VS2003/2005安装目录中的sqlserver\mssdi98.dll覆盖掉SQL Server2000安装目录中的Binn\mssdi98.dll,我试了均不成功,最终在一篇文章中看到说是SQL Server2000版本的问题,尝试着将本机的8.00.194(RTM)升到8.00.2039(SP4),问题得以解决。

Microsoft SQL Server 2000 sp4下载:http://www.crsky.com/soft/5814.html

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数据库连接时输入密码的长度限制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值