存储过程调试

存储过程调试

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

昨天被问到sql server中存储过程怎么调试,我曾经写存储过程,调试方法非常笨拙,就是逐条运行语句,然后查看结果是不是预期的,这样的调试方法,实在是无奈之举,极大程度地限制了开发速度和准确性。今天在他的提点下,研究了下SQL SERVER 2008的存储过程调试。

1.在SQL SERVER2008中调试存储过程

下面内容引自MSDN

SQL SERVER 2008的SSMS是支持单步debug的,可是在调试之前必须配置权限。

假设 SQL Server Management Studio 与 SQL Server 数据库引擎实例在同一台计算机上执行,则对于执行 Transact-SQL 调试器没有配置要求。可是,当 SQL Server Management Studio 与数据库引擎实例在不同计算机上执行时,若要执行 Transact-SQL 调试器,则必须在两台计算机上使用“Windows 防火墙”控制面板应用程序来启用程序和port例外。

在执行数据库引擎实例的计算机上,在“Windows 防火墙”中指定下面信息:

  • 将 TCP port 135 加入�到例外列表。

  • 将程序 sqlservr.exe 加入�到例外列表。默认情况下,sqlservr.exe 安装在 C:\Program Files\Microsoft SQL Server\MSSQL10.实例名称\MSSQL\Binn 下,当中,实例名称对于默认实例为 MSSQLSERVER,对于不论什么指定的实例则为对应实例的名称。

  • 假设域策略要求通过 IPSec 进行网络通信,还必须将 UDP port 4500 和 UDP port 500 加入�到例外列表。

在执行 SQL Server Management Studio 的计算机上,在“Windows 防火墙”中指定下面信息:

  • 将 TCP port 135 加入�到例外列表。

  • 将程序 ssms.exe (SQL Server Management Studio) 加入�到例外列表。默认情况下,ssms.exe 安装在 C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE 下。

  • 启动 Transact-SQL 调试器的要求例如以下:

    • SQL Server Management Studio 必须在作为 sysadmin 固定server角色成员的 Windows 帐户下执行。

    • 数据库引擎查询编辑器窗体必须使用 Windows 身份验证来连接,或使用作为 sysadmin 固定server角色成员的 SQL Server 身份验证登录名来连接。

    • 数据库引擎查询编辑器窗体必须连接到 SQL Server 2008数据库引擎的实例。假设查询编辑器窗体连接到处于单用户模式下的实例,您将无法执行调试器。

    我们建议在測试server上调试 Transact-SQL 代码,而不要在生产server上调试,原因例如以下:

    • 调试是一项须要高特权的操作。因此仅仅同意 sysadmin 固定server角色成员在 SQL Server 中进行调试。

    • 当您调查多个 Transact-SQL 语句的执行时,调试会话一般会执行非常长时间。会话获取的锁(如更新锁)可能会持有非常长时间,直到终止会话或者提交或回滚事务。

    启动 Transact-SQL 调试器可将查询编辑器窗体置于调试模式。在查询编辑器窗体进入调试模式时,调试器会在第一个代码行处暂停。然后,您能够单步运行代码,在特定 Transact-SQL 语句上暂停运行,并使用调试器窗体来查看当前运行状态。能够通过在“查询”工具栏上单击“调试”button,或在“调试”菜单上单击“启动调试”来启动调试器。

    查询编辑器窗体会保持在调试模式下,直到查询编辑器窗体中的最后一个语句完毕或您停止调试模式。能够使用下面不论什么一种方法来停止调试模式和语句运行:

    • “调试”菜单中,单击“停止调试”

    • “调试”工具栏上,单击“停止调试”button。

    • “查询”菜单上,单击“取消运行查询”

    • “查询”工具栏上,单击“取消运行查询”button。

    也可在“调试”菜单上单击“所有分离”,以停止调试模式,但同意剩余的 Transact-SQL 语句完毕运行。

原文http://msdn.microsoft.com/zh-cn/library/cc646024(v=SQL.100).aspx

2.在Visual Studio中调试存储过程(以VS2010为例)

打开server资源管理器,加入�一个SQL SERVER 2008数据库连接,然后在存储过程节点上点右键,选择“单步运行存储过程”,就可以进入单步调试状态,同上边过程,也要设置权限。

   大家一定在编写或分析一个复杂存错过程时,非常希望能想VB代码一样进行调试,可惜SQL Server本身并没有提供调试器,我们能够利用VS来进行调试。

   我写了一个简单的存储过程,介绍一下用VS调试存储过程的步骤。

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Create
PROCEDURE
testProcDebugger
    
@id
int
AS
BEGIN
    
declare
@testVal1
int
    
set
@testVal1=@id
    
declare
@empid
varchar
    
declare
@shipperid
varchar
  
    
select
@empid=shipperid,@shipperid=empid
from
orders
    
where
orderid=@testVal1
  
    
select
@empid,@shipperid
END

 

 

第一步:启动Visual Studio,点“试图”->“服务资源管理器”

存储过程调试

 

第二步:加入�数据连接。
    
填写好数据库名、登录账号、和要连接的数据库,点确定。
 
第三步:在要调试的存错过程上右键,选择“单步运行存储过程”
     
第四步:这时调试器会依据存储过程的參数,提示你输入几个用于条数的值,然后点确定就能够进入调试状态了。
      
如今大家就能够像调试VB代码一样,进行一步一步的跟踪了。

第二步:加入�数据连接。

存储过程调试

 

填写好数据库名、登录账号、和要连接的数据库,点确定。
 
第三步:在要调试的存错过程上右键,选择“单步运行存储过程”

存储过程调试

  
第四步:这时调试器会依据存储过程的參数,提示你输入几个用于条数的值,然后点确定就能够进入调试状态了。
存储过程调试

 
如今大家就能够像调试VB代码一样,进行一步一步的跟踪了。

存储过程调试

分类:
开发技能

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118450.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 给 iTerm 终端设置代理

    给 iTerm 终端设置代理

    2021年5月12日
    118
  • Snap7 西门子S7系列PLC的通信库 简介[通俗易懂]

    Snap7 西门子S7系列PLC的通信库 简介[通俗易懂]目录简介参考Snap7简介Snap7用途适用系统支持语言西门子S7通信介绍Snap7组件Sanp7APISnap7PythonSnap7安装PLC设置连接PLC读取数据发送数据Sanp7C/C++node.js简介最近在开发一个项目,作为技术帝,已经完成工艺、机械设计的设计,项目过多,也是为了让自己更加????叉,就开始尝试做电气制图和PLC编程。结合物联网的发展,有一种想法,将数据传…

    2022年10月23日
    0
  • wannacry病毒作者_wannacry病毒利用了哪种漏洞

    wannacry病毒作者_wannacry病毒利用了哪种漏洞1.样本概况1.1样本信息病毒名称:Trojan-Ransom.Win32.Wanna.m所属家族:木马/勒索/蠕虫MD5:DB349B97C37D22F5EA1D1841E3C89EB4SHA1:E889544AFF85FFAF8B0D0DA705105DEE7C97FE26CRC32:9FBB12271.2测试环境及工具…

    2022年10月9日
    0
  • ft232芯片怎么样_引脚悬空是什么电平

    ft232芯片怎么样_引脚悬空是什么电平概述:FF4232H芯片一款专门用于USB到RS232/RS485/RS422之间的电平转换芯片,数据收发和协议转换工作全由芯片独立完成,无需人工干预,不用编写芯片的固件,给设计者带来了极大的便利。利用该芯片只需要加少量的外围电路就可以实现相应的转换。FT4232H采用64-LDLeadFreeLQFPorQFN封装工艺。一、FT4232H功能和特性1、单芯片到4路串口的转换,整个接口协…

    2022年8月10日
    3
  • vs 证书签名

    vs 证书签名在VS2005或VS2008安装后发现路径**VC7\Common7\Tools\Bin\下有许多小工具,我对带有Cert的文件比较感兴趣。经过研究,发现是有关证书和签名的,当然,该证书未被证书认证机构认可。下面列出这些工具和我的使用心得。1。Makecert.exe—证书创建工具2。Cert2Spc.exe—发行者证书测试工具3。Signcode.exe—文件签名工

    2022年6月10日
    29
  • UE4导入高度图

    UE4导入高度图UE4导入高度图查找高度图使用ps编辑图片打开虚幻引擎的地形编辑器查找高度图可以从百度直接搜索使用ps编辑图片下载下来之后图片是jpg格式的,虚幻引擎不能直接用需要使用ps编辑一下选择图像->勾选灰度和16位通道,注意:如果不勾选灰度,图片有颜色的话,ue生成地形可能出现为题;还有ue只支持16位通道,不要选择其他通道点击文件和储存为,之后出现一个弹窗,填写自己图片的名字,注意图片的格式只能是png和raw,其他格式ue不支持打开虚幻引擎的地形编辑器1.ue4.25的地形在模式

    2022年5月26日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号