Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在Visual Studio 2012中调试SQL Server T-SQL_Sql Server_Tsql_Debugging_Visual Studio 2012_Visual Studio Debugging - Fatal编程技术网

Sql server 如何在Visual Studio 2012中调试SQL Server T-SQL

Sql server 如何在Visual Studio 2012中调试SQL Server T-SQL,sql-server,tsql,debugging,visual-studio-2012,visual-studio-debugging,Sql Server,Tsql,Debugging,Visual Studio 2012,Visual Studio Debugging,如何在Visual Studio 2012中调试多层应用程序中的T-SQL存储过程 为了清楚起见,我想在VS 2012中的存储过程中设置一个断点,并在同一调试会话中从ASP.NET WebForms应用程序调用存储过程时点击该断点 当遵循与VS2010相同的步骤时,存储过程中不会命中断点 在SQLServer2008R2 Express数据库的存储过程中调试T-SQL的工作与VisualStudio2010中的预期一样 为了确保所有功能都已正确启用,我查看了VS 2010()的说明,但VS 20

如何在Visual Studio 2012中调试多层应用程序中的T-SQL存储过程

为了清楚起见,我想在VS 2012中的存储过程中设置一个断点,并在同一调试会话中从ASP.NET WebForms应用程序调用存储过程时点击该断点

当遵循与VS2010相同的步骤时,存储过程中不会命中断点

在SQLServer2008R2 Express数据库的存储过程中调试T-SQL的工作与VisualStudio2010中的预期一样

为了确保所有功能都已正确启用,我查看了VS 2010()的说明,但VS 2012或.NET 4.5不存在这样的页面

似乎缺少的步骤是启用“应用程序调试”,但VS 2012中的服务器资源管理器>数据连接上下文菜单中不存在此类选项

VS2010应用程序调试

VS 2012无应用程序调试

下面的文章详细解释了在执行.Net应用程序时如何启用存储过程调试


我认为最简单的方法是将DB作为一个项目添加到您的解决方案中。您可以通过右键单击SQL Server对象资源管理器(SSOX)中的数据库来完成此操作。这是开发和调试数据库的一种非常好的方法。将数据库添加到项目中后,可以在任意位置添加断点,并根据LocalDB(或其他目标,如果愿意)进行调试。这种方法的最大缺点是现有数据不会随您一起迁移(尽管您可以随意将任何更改发布回SQL DB)。请参阅MSDN上的SSDT以获取更多指导。

您需要打开“SQL Server对象资源管理器,而不是“服务器资源管理器”。这是2010年和2012年的不同之处。然后右键单击服务器并选择“应用程序调试”“

这是针对VS2012和SQL2012的。是的,其他版本有些不同,但有点类似的设置。这是很棘手的,因为一个人必须有各种各样的设置恰到好处,否则它将无法工作

  • 使用所有正确的选项对VS和SQL进行普通安装(如何做到这一点超出了本文的范围)

  • 对整个环境的完全管理权限和对sql的系统管理权限(基本上是开发环境;您不希望在生产环境中这样做)

  • 我总是在完全本地IIS下调试.net web应用程序,这是从控制面板安装的windows功能

    • go.net项目属性,web,使用本地iis web服务器(我也坚持使用默认端口80)
  • 当我使用VS sql server数据库项目开发我的数据库等时,我总是在完全独立的本地sql下工作;我使用模式比较来使用VS中所做的更改刷新sql(如何做到这一点超出了本文的范围)

    • 不要将断点放在sp的该副本上;该版本的sp只是一个蓝图,而不是运行时版本
  • 为.net和sql server启用go.net项目属性、web、调试器(位于底部)

  • 查看sql server对象资源管理器(不是服务器资源管理器)

    • 单击添加sql server,使用系统管理员凭据添加完整的本地sql server(我总是使用sa进行此类工作)
    • 右键单击完整的本地sql server并启用应用程序调试
    • 找到sp,右键单击并查看代码,然后在那里添加断点;这是sp的运行时版本(请注意,我从不在那里对sp进行更改,而是在数据库项目下的主副本中进行更改)
  • 重新生成解决方案,并通过单击绿色箭头internet explorer在ide中以调试模式执行.net web app

我希望我没有忘记任何事情。如果有的话,我会来修改我的帖子

所有这些听起来可能很复杂。它是。但只要有一点纪律和耐心,这是无价的。
祝你好运。

谢谢,但那篇文章涵盖了VS2010,正如我所说的,它工作得很好。我需要一些VS2012的东西。除了缺少“应用程序调试”选项外,我在VS2010和VS2012中对同一项目执行了相同的配置步骤。调试在VS2010中有效,但在VS2012中无效。存储过程是解决方案的一部分,还是仅在DB端?@aclear16-存储过程文件(创建过程脚本)不是解决方案的一部分。存储过程已添加到数据库中。将服务器连接添加到服务器资源管理器中的数据连接后,我将树展开到存储过程,右键单击,然后选择“打开”选项以按照说明打开存储过程。我在VS中打开的ALTER脚本中设置了断点。同样,这个过程在VS2010中使用相同的解决方案都能成功运行,但在VS2012中无法启用“应用程序调试”。