SQL Server Management Studio 调试

本文介绍了如何在SQLServer2012中使用SQLServerManagementStudio(SSMS)进行调试,包括启用调试器、设置断点、运行调试以及条件断点的使用。通过示例展示了如何调试SQL查询,帮助开发者更有效地定位和解决问题。
摘要由CSDN通过智能技术生成

调试器在任何开发平台中都扮演着重要的角色。调试器越强大,调试时间消耗越少。SQL Server 2012 带有强大的调试技术,可以减少您的时间和精力。但怎样进行调试呢?

首先安装 SQL Server Management Studio(SSMS),我们用一个示例来演示调试器功能。

USE AdventureWorks2014
GO
DECLARE @BusinessEntityID INT
DECLARE @PhoneNumberType VARCHAR(50)
DECLARE @FirstName VARCHAR(50)
DECLARE @SalesQuota NUMERIC(18,2)
DECLARE Database_Cursor CURSOR FOR
  Select top 5 BusinessEntityID,FirstName,SalesQuota,PhoneNumberType
  from [Sales].[vSalesPerson]
OPEN Database_Cursor
FETCH NEXT FROM Database_Cursor INTO @BusinessEntityID, @FirstName, @SalesQuota,@PhoneNumberType
WHILE @@FETCH_STATUS = 0
BEGIN
  PRINT CONCAT(@BusinessEntityID,' ', @FirstName,' ' ,@SalesQuota,' ',@PhoneNumberType)
  FETCH NEXT FROM Database_Cursor INTO @BusinessEntityID, @FirstName, @SalesQuota,@PhoneNumberType
END
CLOSE Database_Cursor
DEALLOCATE Database_Cursor
GO

图片

1. 启用调试器:

在继续使用这些功能之前,让我告诉您如何运行调试器。 在SSMS窗口中,选择调试菜单并选择开始调试或按(Alt + F5)或直接点击调试按钮,如图所示。

图片

2. 设置断点:

在某行SQL前的空白处点击,出现圆圈且行被选中,则表示设置完成。或者按 F9 键,则光标所在行被选中为断点行。取消选中,再重复一次即可。

图片

3. 运行调试:

在调试模式下,当设置断点后,点击上方绿色箭头(继续)按钮或按(Alt + F5)运行下一步。底部将显示当前断点行的变量值,如图所示。

图片

当再次点击按钮继续时,下一次操作到此断点再次暂停,变量则显示第二行值。如此反复,我们可以确定该脚本运行时,其中的某些变量是否正常、是否有异常值导致脚本运行出错。

4. 条件断点调试:

在调试的时候,若是类似这种遍历查询,将执行太久,我们是否可以设置条件,让某个值出现的时候才中止?这是可以实现的。设置断点后,我们右键断点行,选中条件选项。

图片

我们可以设置,当遍历 @PhoneNumberType='Work' 时暂停,设置如下图。当继续执行后,只有当 @PhoneNumberType='Work'  时,变量值才显示。

图片

类似的,我们希望当 @PhoneNumberType='Work' 且在第2次出现时才中止,这里很简单,我们再增加一个命中次数的条件,命中次数设置为2。

图片

此外在调试窗口中,还可以逐行调试、逐个过程调试,更方便我们排查问题。这些调试概念对于开发人员再熟悉不过了,而 SQL Server 的 SQL 调试,大家似乎很少了解。我见过较多的开发同事、运维同事、甚至DBA,调试存储过程时,利用 多个 print 排查哪行 SQL 出现问题。这虽然也是个好方法,不过对于取数的异常,还得再继续操作数据。

不管黑猫白猫,抓到老鼠就是好猫。一种解决问题的方法也是好的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值