`
peizhiinfo
  • 浏览: 1451566 次
文章分类
社区版块
存档分类
最新评论

SQL Server 2008下轻松调试T-SQL语句和存储过程

 
阅读更多

今天突然有同事问起,如何在sqlserver中调试存储过程(我们公司使用的是sqlserver 2008 R2),猛地一看,和以前使用sqlserver 2000真的有很大的不同,我真晕了。

于是琢磨了一下。SQLSERVER 2005中不知因何去掉了很重要的DEBUGGER功能,要调试,必须要安装VS2005专业版或者更高版本。非常不方便。

还好,SQLSERVER 2008中这个很重要而且方便的功能又回来了。

不过,SQLSERVER 2008的调试功能和SQL2000的方法差别很大。SQL2000是在查询分析器中的对象浏览器中选中需要调试的存储过程,右键----调试---输入参数开始调试。

sqlserver2008中则完全不同,变成了必须要在SSMS中EXEC [PROCEDURE NAME] @VAR1,@VAR2,然后点绿色三角或者点菜单中的调试---启动调试。然后点工具栏的最右边的单步调试或者跳出等。下面的变量窗口和堆栈窗口等可以查看调试中变量等动态变化值。

sqlserver2008调试的要求和条件:如果在引擎所在的电脑或服务器上调试,则只需要SA或者WINDOWS用户登陆即可。如果是异地调试,则需要设置防火墙例外,增加SSMS和SQLSERVER.EXE为允许,增加135端口允许通过。

总之,SQL2008的调试比2000操作起来麻烦多了,要求也多了。刚开始感觉不如2000的好用,也可能是使用2000习惯了。习惯是可怕的,但是微软是在不断进步的...


一、回顾早期的SQL SERVER版本:

早在SQL Server 2000时代,查询分析器的功能还很简陋,远不如VS那么强大。到SQL Server 2005时代,代码高亮、SQL优化等功能逐渐加强,但是依然无法调试SQL语句。好一点的第三方的SQL语法编辑器似乎也不够完美,这样导致一些人抱怨存储过程不便于维护,开发的时候能不用则不用。

二、SQL Server 2008 Express 智能提示加强:

该功能是SQL2008在SQL Server 2005之后的升级版,我们可以很方便的调用智能提示,和 VS一致:使用快捷键ctrl + J 即可。

截图如下:

该功能是否与VS一样了呢? 毕竟他们都是微软的产品。

三、调试T-SQL语句:

1.Debug普通T-SQL语句:

SQL代码如下:

  1. usenorthwind
  2. go
  3. declare@iint,@jint,@kint
  4. set@i=1;
  5. set@j=2;
  6. set@k=@i+@j
  7. select@i;
  8. go

非常简单的定义了 三个int 型变量:i、j、k并且对这些变量进行简单的逻辑运算,在Management Studio 中只要轻松的按F11键,即可调试以上代码块。

截图如下:

接着点击F11逐语句debug 或者F10逐过程调试代码。

截图如下:

这个dubug的场面您是否觉得已经和VS相差无几了呢?

四、支持复杂存储过程嵌套debug:

您可能会疑问,在一个庞大的系统中,如果数据库逻辑绝大部分都是存储过程实现的情况下,会出现存储过程嵌套存储过程或者嵌套存储函数这样的代码。

SQL2008是否支持调试功能呢?答案是肯定的。

首先定义一个简单的存储过程(本文使用NorthWind数据库)代码如下:

  1. CREATEproceduresp_getOrders
  2. @orderIDint=null
  3. as
  4. if(@orderIDisnull)
  5. begin
  6. print'null'
  7. end
  8. else
  9. begin
  10. print'correct'
  11. end
  12. select*fromOrderswhereOrderID=@orderID
  13. go

该存储过程在以下批处理内被调用,代码如下:

  1. declare@iint,@jint,@kint
  2. set@i=1;
  3. set@j=2;
  4. select@k=@i+@j
  5. execsp_getOrders10248
  6. select@i;
  7. go

F11对以上代码进行SQL Debug。

截图如下:

当断点经过exec sp_getOrders 10248 这段代码时,点击F11进入sp_getOrders存储过程进行逐语句debug。

截图如下:

这样可以在嵌套的存储过程或函数内进行debug了,此刻不得不承认: 升级后的SQL2008越来越强大。您还恐惧使用或者调试存储过程么?


分享到:
评论

相关推荐

    如何在SQL Server 2008下轻松调试T-SQL语句和存储过程

    在SQL Server 2008中调试T-SQL语句和存储过程是一项重要的技能,尤其对于数据库开发者来说,能够有效地定位和修复代码错误至关重要。在SQL Server 2000中,调试是通过查询分析器的简单界面进行的,而在SQL Server ...

    sql server2008轻松编写t-sql存储过程

    ### SQL Server 2008 轻松编写 T-SQL 存储过程 #### 一、引言 SQL Server 2008 是一款功能强大的数据库管理系统,它提供了多种工具来帮助开发者高效地进行数据库管理和开发工作。其中,T-SQL(Transact-SQL)是SQL...

    SqlServer存储过程及调试指南

    1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...

    Microsoft SQL Server 2008技术内幕:T-SQL查询_源代码及附录A

    8. **存储过程**:预编译的T-SQL语句集合,可重复使用并提高性能。 9. **触发器**:在数据更改(INSERT、UPDATE或DELETE)时自动执行的程序,用于实现业务规则或数据完整性。 10. **事务和隔离级别**:确保数据...

    Microsoft SQL Server 2005技术内幕:T-SQL查询

    6. **存储过程和触发器**:存储过程是预编译的T-SQL代码集合,可以提高性能并简化复杂的任务;触发器则是在特定数据库事件(如INSERT、UPDATE或DELETE)发生时自动执行的代码。 7. **事务和并发控制**:理解事务的...

    Microsoft.Press.Inside.Microsoft.SQL.Server.2008.T-SQL.Programming

    本书详细介绍了如何创建、调试和优化存储过程。 - **触发器**:触发器是在特定事件发生时自动执行的一段SQL代码。书中对触发器的工作原理进行了深入分析,并提供了多种实际应用场景示例。 #### 五、事务处理与并发...

    SQL_Server存储过程调试指南

    资源名称:SQL_Server存储过程调试指南内容简介: 存储过程( Stored Procedure)是一组为了完成特定功能的 SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来...

    四本sql server 2008技术内幕英文书

    SQL Server 2008是微软推出的一款强大的关系型数据库管理系统,被广泛应用于企业级数据存储和处理。本文将深入探讨四本关于SQL Server 2008的技术内幕书籍所涵盖的重要知识点,帮助读者提升数据库管理和开发技能。 ...

    Microsoft SQL Server 2005 技术内幕:T-SQL 编程

    6. **动态SQL**:允许在运行时生成和执行SQL语句,增加了灵活性但同时也需要谨慎处理防止SQL注入攻击。 7. **错误处理和调试**:讲解如何处理T-SQL中的错误,以及如何使用TRY...CATCH结构来捕获和处理异常。 8. **...

    T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)配书资源

    5. **存储过程与触发器**:存储过程是预编译的SQL语句集合,可以提高执行效率并实现业务逻辑;触发器则是在特定数据库操作(如INSERT、UPDATE或DELETE)前后自动执行的代码。理解这两者及其应用场景,能提升数据库的...

    Inside Microsoft SQL Server 2005: T-SQL Programming

    这本书深入探讨了SQL Server 2005的核心语言Transact-SQL(T-SQL),它是SQL Server进行数据查询、更新、插入和删除操作的主要工具,同时也是开发存储过程、触发器和用户定义函数的关键。 在SQL Server 2005中,T-...

    深入解析sqlserver 2008 Microsoft SQL Server 2008 Internals

    9. **开发与集成**:SQL Server 2008支持多种开发环境和工具,如Visual Studio和SSMS,书中可能涵盖如何在这些环境中使用T-SQL进行开发和调试。 10. **高级特性**:SQL Server 2008引入了许多新特性,如列存储索引...

    t-SQL语句速写程序

    总之,t-SQL语句速写程序是针对SQL Server开发者的实用工具,通过自动化和辅助功能,提高了编写t-SQL语句的效率,降低了出错可能性,同时也为学习和掌握t-SQL提供了便利。对于频繁使用t-SQL的数据库管理员和开发者来...

    Beginning T-SQL with Microsoft SQL Server 2005 and 2008

    本书《Beginning T-SQL with Microsoft SQL Server 2005 and 2008》由Paul Turley和Dan Wood合著,是为那些希望学习Transact-SQL(简称T-SQL)语言以及如何在Microsoft SQL Server 2005和2008环境中使用该语言的专业...

    SQLServer2008Client

    通过SSMS,用户可以编写、调试、执行T-SQL语句,创建和管理数据库对象,如表、视图、存储过程,以及执行备份、恢复等维护任务。此外,SSMS还支持数据库设计、性能监视和优化,以及对SQL Server Agent的管理。 **2. ...

    Sql Server ExpressProfiler 监视Sql语句

    1. **事件监视**:你可以设置事件跟踪来捕获各种数据库操作,如T-SQL语句的执行、存储过程调用、锁事件、登录/登出等。这对于理解数据库的性能瓶颈和潜在问题至关重要。 2. **过滤器应用**:ExpressProfiler支持...

    Microsoft.SQL.Server.2008技术内幕:T-SQL语言基础.

    《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》这本书是SQL Server数据库开发者和管理员的重要参考资料,尤其对于初学者来说,它提供了一个深入理解T-SQL(Transact-SQL)语言的全面指南。T-SQL是SQL Server...

    记录SQL server的代码sql-server-master.zip

    9. **开发工具**:Visual Studio、SQL Server Management Studio (SSMS) 和Azure Data Studio是常用的SQL Server开发和管理工具,它们提供图形界面和脚本编辑器,便于编写、调试和执行SQL语句。 10. **T-SQL编程**...

Global site tag (gtag.js) - Google Analytics