您的位置:首页 > 数据库 > 数据库管理 > 正文

SQL SERVER存储过程调试

更多 时间:2015-5-22 类别:数据库管理 浏览量:1143

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)、存储过程

  •  
  • SQL 代码   复制
  • 
    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)、该存储过程在以下批处理内被调用,代码如下

  •  
  • SQL 代码   复制
  • 
    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、监控变量:

    本文地址:http://www.studyofnet.com/news/919.html