SQL Server Management Studio 调试
Posted 薛定谔的DBA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server Management Studio 调试相关的知识,希望对你有一定的参考价值。
调试器在任何开发平台中都扮演着重要的角色。调试器越强大,调试时间消耗越少。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 出现问题。这虽然也是个好方法,不过对于取数的异常,还得再继续操作数据。
不管黑猫白猫,抓到老鼠就是好猫。一种解决问题的方法也是好的。
以上是关于SQL Server Management Studio 调试的主要内容,如果未能解决你的问题,请参考以下文章
怎样使用SQL Server Management Studio
标题: Microsoft SQL Server Management Studio
使用 SQL Server Management Studio 连接到 SQL Server
如何在 SQL Server Management Studio 中注册 SQL Server 服务器?
SQL Server Compact Edition 和 SQL Server 2008 Management Studio