教你如何调试SQL CLR存储过程

开发 后端
文章主要介绍了SQL CLR存储过程的运用,教你添加一个通过调用该存储过程来测试它的脚本。在“解决方案资源管理器”中,右击“TestScripts”目录,单击“添加测试脚本”,然后插入下面的第二个示例部分中的代码。

运用了SQL CLR存储过程很长时间了,有一点点的小积累,在这里和大家分享一下,看看对大家有没有帮助。在一个新的 SQL Server 项目中,建立一个到 AdventureWorks 示例数据库的连接。有关更多信息,请参见如何:连接到数据库。使用下面第一个示例部分中的代码创建一个新的存储过程,并将其命名为“InsertCurrency.cs”。有关更多信息,请参见如何:使用 SQL Server 项目类型进行开发。添加一个通过调用SQL CLR存储过程来测试它的脚本。在“解决方案资源管理器”中,右击“TestScripts”目录,单击“添加测试脚本”,然后插入下面的第二个示例部分中的代码。以名称“InsertCurrency.sql”保存文件。右击该文件名,然后单击“设置为默认调试脚本”。

在 InsertCurrency.cs 中设置断点,然后在“调试”菜单上单击“启动”以对该项目进行编译、部署和单元测试。以黄色箭头表示的说明性指针在断点上显示时,说明正在调试存储过程。
尝试不同的调试功能。打开“局部变量”窗口,并在“调试”菜单上单击“单步执行”以单步执行存储过程中的一行。注意,“局部变量”窗口中的变量 @mynvarchar 的值已经更改,并且它的值现在显示为红色,表示它已经更改。有关更多信息,请参见 使用“局部变量”窗口。

注意
1.服务器可能不会反映在调试器窗口中对变量值的更改。有关更多信息,请参见 SQL 调试限制。
2.打开“监视”窗口。在“文本编辑器”中,拖动 InsertCurrencyCommand 变量到“监视”窗口中的任意位置。
3.该变量随即添加到受监视的变量列表中。有关更多信息,请参见如何:使用调试器变量窗口。

注意也可以在“监视”窗口中编辑变量的值。在文本编辑器中,右击 InsertCurrencyCommand.ExecuteNonQuery 行并在快捷菜单上单击“插入断点”。在“调试”菜单中单击“继续”,调试器将运行代码直到新的断点。再次单击“继续”完成对存储过程的调试。“输出”窗口会显示一条消息,表明已成功部署存储过程,并会显示执行 InsertCurrency.sql 文件中的命令的结果。示例用此代码替换存储过程模板。

SQL CLR存储过程代码

using System;  
using System.Data;  
using System.Data.Sql;  
using System.Data.SqlServer;  
using System.Data.SqlTypes;  
public partial class StoredProcedures  
{  
[SqlProcedure]  
public static void InsertCurrency(SqlString currencyCode,  
SqlString name)  
{  
using(SqlConnection conn = new SqlConnection("context connection=true")) {  
SqlCommand cmd = new SqlCommand([your SQL statement], conn);  
}  
InsertCurrencyCommand.CommandText = "insert Sales.Currency" 
+ " (CurrencyCode, Name, ModifiedDate) values('"  
+ currencyCode.ToString() + "', '"  
+ name.ToString() + "', '"  
+ DateTime.Now.ToString() + "')";  
InsertCurrencyCommand.ExecuteNonQuery();  
}  
}这是用于执行存储过程的测试脚本。  
复制代码  
- Delete any row that might exist with a key value  
- that matches the one we are going to insert  
DELETE Sales.Currency  
WHERE CurrencyCode = 'eee' 
EXEC InsertCurrency 'eee', 'MyCurr4'  
SELECT * FROM Sales.Currency WHERE CurrencyCode = 'eee' 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.

【编辑推荐】

  1. 使用CLR存储过程来传回讯息实战案例
  2. 概括Visual Studio CLR调试器两种方法
  3. Visual Studio中SQL SERVER CLR代码调试工具使用讲解
  4. 全面概括SQL SERVER调用CLR类库实现步骤
  5. CLR函数压缩NTEXT类型字段实例讲解
责任编辑:田树 来源: 中国核能网
相关推荐

2009-09-18 14:09:57

SQL CLR存储过程

2009-09-17 19:19:17

CLR存储过程

2009-09-18 10:40:05

CLR存储过程

2009-10-22 14:05:55

CLR存储过程

2009-10-22 18:06:31

CLR存储过程

2010-11-10 15:47:59

2009-09-18 10:55:17

CLR存储过程

2011-09-01 15:24:22

SQL Server 存储过程调试

2010-09-14 10:36:23

sql server存

2009-10-22 15:09:40

CLR存储过程

2010-04-07 13:12:25

Oracle存储过程

2010-07-13 10:35:20

SQL Server2

2010-09-16 17:46:22

SQL存储过程

2009-04-14 09:35:33

.NETCLR术语

2011-09-01 16:13:37

Visual StudSQL Server 存储过程

2010-10-29 16:06:55

Oracle存储过程

2009-09-17 10:27:55

linq存储过程

2011-07-11 13:22:28

存储过程

2010-07-15 12:38:14

SQL Server存

2009-10-22 13:02:47

SQL SERVER
点赞
收藏

51CTO技术栈公众号