当前位置:首页 > 系统运维 > 正文内容

Visual Studio中的SQL Server CLR代码调试(1)

a8116255310年前 (2015-11-09)系统运维13

在Visual studio中开发SQL Server CLR代码的好处在于,可以充分利用调试方面的工具。我们在开发普通的.net代码时,对采用Visual Studio中的调试器进行单步调试已经是轻车熟路;在编写SQL Server的CLR代码时,又如何使用Visual Studio进行调试呢 接下来本文将介绍三种调试的 *** 。

为了更好地进行SQL Server CLR代码的调试,您需要使用Visual Studio专业或团队版。下表列出了可以使用调试器的Visual Studio的版本及开发语言,如图1所示:

 

*** 2:使用测试脚本

另一种 *** 是创建一个测试脚本,然后调试测试脚本。测试脚本创建后,保存在解决方案中的“Test Scripts”文件夹。

以下是代码在Test1.sql脚本范例,我们将用以下指定的字符串数值作为参数来运行sortString函数。

select dbo.sortString('apple,pear,orange,banana,grape,kiwi')

设置好断点后,右击测试脚本,在弹出菜单中选择“Debug Script”即可开始调试。

需要注意的是:采用测试脚本进行测试时,必须要设置断点,否则调试器将不会停止,直到执行完所有的代码。这点与 *** 1不同。

 

在Visual Studio中开发SQL Server CLR代码的好处在于,可以充分利用调试方面的工具。我们在开发普通的.net代码时,对采用Visual Studio中的调试器进行单步调试已经是轻车熟路;在编写SQL Server的CLR代码时,又如何使用Visual Studio进行调试呢 接下来本文将介绍三种调试的 *** 。

为了更好地进行SQL Server CLR代码的调试,您需要使用Visual Studio专业或团队版。下表列出了可以使用调试器的Visual Studio的版本及开发语言,如图1所示:

 
图1:可使用调试器的Visual Studio的版本及开发语言

除了正确的Visual Studio版本和可支持的语言之外,还需要确保SQL Server中已经启用了“CLR集成”。可以在SQL Server外围应用配置器中进行设置。

需要特别注意的是:CLR调试时将导致其他所有线程停止,因此决不能在生产服务器尝试调试CLR。

一旦在Visual Studio的“服务器资源管理器”中的数据连接(如图2所示)设置了允许调试,那么在Visual Studio的“查看”菜单项中就多了项“服务器资源管理器”。

 
图2:服务器管理器中的数据连接启用CLR调试

当选择了“允许SQL/CLR调试”时,会看到如下所示的消息提示窗口:

 
图3:启用CLR调试时的消息提示窗口

一旦SQL Server中启用了CLR,并且连接项中启用了调试后,就可以开始调试过程。调试CLR代码的 *** 有三种:

1.使用服务器资源管理器,单步执行SQL Server 2005数据库对象;

2.使用Visual Studio 2005中的SQL Server项目,运行其中的测试脚本;

3.运行一个应用程序来调用存储过程。

*** 1:单步执行一个对象

假如CLR代码已经部署到SQL Server上,我们就可以浏览CLR函数或存储过程,右键点击要调试的对象,在弹出菜单中选择“单步执行函数”或“单步执行存储过程”,如图4所示:

 
图4:单步执行函数

此操作将执行该函数或存储过程,将弹出一个窗口,我们可以输入参数的值,如图5所示:

 
图5:指定函数输入参数

指定完输入值,按“OK”按键后,就开始了调试过程。首先它将停在函数代码的起始位置,不论我们是否使用断点,如图6所示:

 
图6:调试停在函数开始位置

这时可以使用如图7所示的调试控制工具栏的功能按钮,逐行单步执行代码。

 
图7:调试控制工具栏

在本地窗口我们可以看到变量值变化的情况,如图8所示。此外,我们还可以利用其他调试功能。

 
图8:本地窗口中可以看到变量值变化情况

*** 2:使用测试脚本

另一种 *** 是创建一个测试脚本,然后调试测试脚本。测试脚本创建后,保存在解决方案中的“Test Scripts”文件夹。

以下是代码在Test1.sql脚本范例,我们将用以下指定的字符串数值作为参数来运行sortString函数。

select dbo.sortString('apple,pear,orange,banana,grape,kiwi')

设置好断点后,右击测试脚本,在弹出菜单中选择“Debug Script”即可开始调试。

需要注意的是:采用测试脚本进行测试时,必须要设置断点,否则调试器将不会停止,直到执行完所有的代码。这点与 *** 1不同。

 
图9:测试脚本的弹出式菜单

一旦调试过程开始,将停止在之一个断点,如图10所示。

 
图10:使用测试脚本来调试CLR代码

这时,我们可以逐行单步执行每一步骤的代码行,看到数值变化的情况。

*** 3:使用一个应用程序进行测试

在这个 *** 中,采用Visual Studio来调试应用程序。该程序作为测试驱动,假如应用程序调用SQL Server的CLR代码并且CLR代码中设置了断点,我们就可以调试该代码了。

小结

该篇讲述了在Visual Studio 中调试CLR代码的三种 *** 。

对于CLR触发器,可以创建测试脚本,当测试脚本对表进行增、删改的操作时,一旦程序运行到触发器代码的断点位置,程序就可以停下调试了。另一种方式这样做是要调试存储过程来触发CLR触发器代码。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://www.2345hao.cn/blog/index.php/post/22624.html

分享给朋友:

“Visual Studio中的SQL Server CLR代码调试(1)” 的相关文章

windows 7/8.1正在启动windows时间长的解决方法

windows 7/8.1正在启动windows时间长的解决方法

正在启动windows时间长怎么办 小编带来了Windows 7/8.1正在启动windows时间长解决方法,假如有朋友在安装完Windows系统之后一直停留在“正在启动windows”的话,不妨试一试下文的方法哦~ 原因:Windows 7/8.1不完全支持UEFI,需要CSM(Comp...

windows 7系统开机提示press any key to restart的故障分析及解

windows 7系统开机提示press any key to restart的故障分析及解

Windows 7 64位系统开机后提示"press any key to restart",无法进入系统了,具体现象如下所示: 故障分析: 故障的主要原因还是硬盘的问题,可以先检查是不是接触不良或坏了,进行修复或更换即可。 解决方法: 1、开机按F8不动到高级选项出现在松手,选“...

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

Windows7开机后出现黑一下屏性能降低

Windows7开机后出现黑一下屏性能降低

打开IE浏览器的时候、聊QQ的时候、玩游戏的时候… … 这到底是谁惹的祸呢? 很多人都知道Windows 7桌面特效全部开启会使系统性能降低,那到底是哪个特效导致的这一情况呢? 解决办法: 右键计算机,高级系统设置-性能-设置-关闭”任务栏和开始菜单使用动画“和”最大化和最小化动态显示窗口“...

windows 7查看电脑近期使用情况确定有没有被他人使用

windows 7查看电脑近期使用情况确定有没有被他人使用

我一个朋友最近装装了Windows 7,他总感觉有人用了他的电脑,但是一直不确定,他想知道有没有人动用他的电脑,问我有没有办法 我说设置一下就行了: 启动Windows 7,在搜索栏中输入编辑组,马上就搜索到了编辑组策略,点击即可启动程序编辑组策略。依次展开组策略左侧树形列表的计算机配置/管理模...

windows 7系统怎么取消禁ping命令?

windows 7系统怎么取消禁ping命令?

当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Windows 7默认在防火墙里禁止了。 1、查看主机ip 打开“开始”程序中的“附件”,找到“命令提示符”打开。输入命令:ipconfig,可以看到本机的ip是192.1...