欢迎光临

木子屋

标题: SQL Server2000存储过程调试

作者: dnawo

日期: 2008-07-31 07:11 PM

分类: 服务器

内容: 今天写了个存储过程，在查询分析器中测试报错：
这样的错误信息根本看不出错在哪边，只能用单步执行来追踪了。在查询分析器对象浏览器中找到要调试的存储过程，右键点击选择调试：
输入各个参数的值后开始调试(钩选自动回滚调试完毕后将回滚操作)：
按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

+ 查看当前日志评论 (0)

登录

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.814 ms

返回

标题: SQL Server2000存储过程调试

你没有权限发表评论

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.814 ms

返回

暂无评论

返回

────────────

木子屋

PJBlog3 v3.2.9.518 Inside.

Processed In 0.846 ms

返回