当前位置:首页 > 开发教程 > 数据库 >

SQL 2008 R2中调试存储过程

时间:2016-06-01 09:30 来源:互联网 作者:源码搜藏 收藏

介绍 我们可以很容易地使用从调试菜单调试调试我们的.NET应用程序,.NET应用程序有一个用来存储调试定位和调试配置的增量链接自己的.PDB(程序调试数据库)文件。 这一切都关于.NET,但我们可以调试我们的存储过程? 答案是肯定的,我们可以调试存储过程。

介绍

我们可以很容易地使用从调试菜单调试调试我们的.NET应用程序,.NET应用程序有一个用来存储调试定位和调试配置的增量链接自己的.PDB(程序调试数据库)文件。这一切都关于.NET,但我们可以调试我们的存储过程?答案是肯定的,我们可以调试存储过程。让我们来看看如何做到这一点。

背景

存储过程是人气很足,因为它们的功能,如增强的安全性,分离是在数据的功能和应用,提高了性能成为可能(如数据库做更少的调用),基本上它是一个时间和一个地方处理的主题。SP(存储过程)现在是在DBA和开发者人群中比较受欢迎,但是经过编写大型SP公司,如何调试呢?如何,如果他们正常运行测试。

因此,这里是调试存储的过程,让我们来看看我们需要调试它的需要。

一点点地

1.第一步是创建一个存储过程(已经创建的,那么你可以跳过这一步,如果你的存储过程),我在这里创建一个简单的存储过程,从EMP表中特定的ID选择记录,见下文扣

SQL 2008 R2中调试存储过程

2.存储过程创建成功后,我们已经准备好调试。基本上有两种方法来调试存储过程

  1. 使用SQL管理工作室(SSMS)
  2. 使用Visual Studio
将看到如何调试它使用SQL Management Studio中 (我使用SQL 2008R2快递)
  • 打开SQL 2008 R2
  • 点击ViewMenu - >对象资源管理器
  • 点击连接数据库引擎 - >为SQL数据库输入用户名和密码 - >连接到数据库中,见下文片段

            SQL 2008 R2中调试存储过程

  • 展开数据库 - >选择可编程文件夹 - >存储过程(你会看到你的程序在这里)

            SQL 2008 R2中调试存储过程

  • 右键打开新的查询窗口点击数据库,并单击“新建查询”
  • 写声明“Exec的PROCEDURENAME”(在我的情况下,其程序名称是'sp_empInfo')
  • 把调试器使用键F9该行

            SQL 2008 R2中调试存储过程

 

  • 从SQL选择绿色箭头(调试)和调试器得到启动,按F11介入,程序
  • 您可以在“本地”和“调用栈”窗口输出

          SQL 2008 R2中调试存储过程

调试它使用Visual Studio

同样的方式,你可以使用Visual Studio调试存储过程

  • 转到Visual Studio和连接数据库。请按照以下步骤
  •  打开Visual Studio编辑器
  •  点击ViewMenu - > SQL Server对象资源管理器(VS 2012之前,它是服务器资源管理器)

            SQL 2008 R2中调试存储过程

  •  在SQL Server对象资源管理器窗格中右键单击数据连接
  •  选择Add Connection
  •  输入凭据(如SQL实例,SQL服务器的用户名,密码,数据库名)
  • 右键单击数据库,并允许'应用程序调试“”允许SQL / CLR调试“,见下扣

           SQL 2008 R2中调试存储过程

  • 展开数据库 - >选择可编程文件夹 - >存储过程
  • 右键单击程序 - >选择“调试程序”

           SQL 2008 R2中调试存储过程

你可以从现在开始调试。

例外

访问权限,而调试存储过程中最大的问题,

常见错误信息

下面是调试存储过程中出现的常见错误信息

  1. 无法启动Transact-SQL调试,无法连接到数据库引擎实例...
  2. 无法启动T-SQL调试,无法连接到计算机...
  3. 登录失败:未知的用户名或密码错误?
  4. 无法启动调试器,执行权限是...
  5. 无法连接到SQL Server进程的...

看到一些异常/错误下面卡扣

SQL 2008 R2中调试存储过程

当你试图调试远程存储过程发生下列异常

SQL 2008 R2中调试存储过程

常用穴位,以避免错误,调试

要解决上述错误,你可以尝试以下解决方法

  1. 如果您在本地SQL服务器上调试存储过程,那么你的本地SQL的用户应该在“ 系统管理员 ”的角色,添加用户在sysadmin角色,下面的存储过程运行(这是内置),见下面的语法
  2. sp_addsrvrolemember '<Login>', 'sysadmin'
    
  3. 配置TCP端口在Windows防火墙,使T-SQL调试,详见MSDN链接
  4. 配置TCP端口在Windows防火墙中启用远程T-SQL调试(当SQL Server是不同的,希望从客户机调试的话)看到MSDN链接在这两种情况下,对于远程调试,你可以使用Windows本地或域帐户认证
  5. 双方的SQLserver机器上打开防火墙端口以及客户端的端口:TCP 139,TCP 445,UDP 137和UDP 138 
  6. SQL管理工作室应该与共进午餐“运行管理员......”
  7. 管理工作室(客户机)和服务器(SQL)应该在同一个域中,否则你需要设置帐户相同的用户名和密码

我们学到了什么!

我们可以通过使用Visual Studio或使用SSMS(SQL Management Studio中),我们可以使用局部变量,调用堆栈窗口为调试存储过程。您可以为存储过程的参数提供(如果有的话),并在其上获得即时调试器。 

希望这将是在日常的.NET / SQL的生活非常有用。 


数据库阅读排行

最新文章