关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » SQL Server »Visual Studio中的SQL Server CLR代码调试(1)

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

    2015-11-09 00:00:00 出处:ITJS
    分享

    在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触发器代码。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    帝国CMS7.5编辑器上传图片取消宽高的三种方法

    帝国cms如何自动生成缩略图的实现方法

    Windows 12即将到来,将彻底改变人机交互

    帝国CMS 7.5忘记登陆账号密码怎么办?可以phpmyadmin中重置管理员密码

    帝国CMS 7.5 后台编辑器换行,修改回车键br换行为p标签

    Windows 11 版本与 Windows 10比较,新功能一览

    Windows 11激活产品密钥收集及专业版激活方法

    IT头条

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    严重缩水!NVIDIA将推中国特供RTX 5090 DD:只剩24GB显存

    00:17

    无线路由大厂 TP-Link突然大裁员:补偿N+3

    02:39

    Meta 千万美金招募AI高级人才

    00:22

    技术热点

    微软已修复windows 7/windows 8.1媒体中心严重漏洞 用户可下载安

    卸载MySQL数据库,用rpm如何实现

    windows 7中使用网上银行或支付宝支付时总是打不开支付页面

    一致性哈希算法原理设计

    MySQL数字类型中的三种常用种类

    如何解决SQL Server中传入select语句in范围参数

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。