SQL SERVER存储过程调试
SQL SERVER存储过程调试如果 SQL Server Management Studio 与 SQL Server 数据库引擎实例在同一台计算机上运行,则对于运行 Transact-SQL 调试器没有配置要求。但是,当 SQL Server Management Studio 与数据库引擎实例在不同计算机上运行时,若要运行 Transact-SQL 调试器,则需要配置权限
一、启动 Transact-SQL 调试器的要求如下
1、SQL Server Management Studio 必须在作为 sysadmin 固定服务器角色成员的 Windows 帐户下运行。
2、数据库引擎查询编辑器窗口必须使用 Windows 身份验证来连接,或使用作为 sysadmin 固定服务器角色成员的 SQL Server 身份验证登录名来连接。
3、数据库引擎查询编辑器窗口必须连接到 SQL Server 2008数据库引擎的实例。如果查询编辑器窗口连接到处于单用户模式下的实例,您将无法运行调试器。
4、建议在测试服务器上调试 Transact-SQL 代码,而不要在生产服务器上调试
5、调试是一项需要高特权的操作。因此只允许 sysadmin 固定服务器角色成员在 SQL Server 中进行调试。
6、调试会话通常会运行很长时间,会话获取的锁(如更新锁)可能会持有很长时间,直到终止会话或者提交或回滚事务。
二、在SQL SERVER数据库中调试 (设置断点 ,然后按F10进入调试界面,按F11进行单步调试)
1、普通T-SQL语句
(1)、在Management Studio 中只要轻松的按F11键,即可调试代码块。
(2)、接着点击F11逐语句debug 或者F10逐过程调试代码。
2、复杂存储过程嵌套调试
(1)、存储过程
CREATE procedure sp_getOrders
@orderID int = null
as
if (@orderID is null )
begin
print 'null'
end
else
begin
print 'correct'
end
select * from Orders whereOrderID = @orderID
go
(2)、该存储过程在以下批处理内被调用,代码如下
declare @i int ,@j int,@k int
set @i = 1;
set @j = 2;
select @k=@i + @j
exec sp_getOrders 10248
select @i;
go
(3)、当断点经过exec sp_getOrders 10248 这段代码时,点击F11进入sp_getOrders存储过程进行逐语句debug。
三、在vs中调试存储过程步骤如下
1、打开vs,点击 视图-->服务器资源管理器
2、选择数据连接,单击右键,点击添加连接
3、选择存储过程所在的服务器和数据库
4、选择要调试的存储过程,单击右键,选择单步调试
5、vs会要求输入参数值
6、然后进入单步调试,进入单步调试后就像调试C#代码一样,可以监控变量值,而且如果执行的过程中涉及到触发器,还会跳入到触发器里,执行触发器代码
7、监控变量: