如何:调试 SQL CLR 存储过程

王朝学院·作者佚名  2009-02-04
窄屏简体版  字體: |||超大  

调试 SQL CLR 存储过程

在一个新的 SQL Server 项目中,建立一个到 AdventureWorks 示例数据库的连接。有关更多信息,请参见如何:连接到数据库。

使用下面第一个示例部分中的代码创建一个新的存储过程,并将其命名为“InsertCurrency.cs”。有关更多信息,请参见如何:使用 SQL Server 项目类型进行开发。

添加一个通过调用该存储过程来测试它的脚本。在“解决方案资源管理器”中,右击“TestScripts”目录,单击“添加测试脚本”,然后插入下面的第二个示例部分中的代码。以名称“InsertCurrency.sql”保存文件。右击该文件名,然后单击“设置为默认调试脚本”。

在 InsertCurrency.cs 中设置断点,然后在“调试”菜单上单击“启动”以对该项目进行编译、部署和单元测试。以黄色箭头表示的说明性指针在断点上显示时,说明正在调试存储过程。

尝试不同的调试功能。

打开“局部变量”窗口,并在“调试”菜单上单击“单步执行”以单步执行存储过程中的一行。注意,“局部变量”窗口中的变量 @mynvarchar 的值已经更改,并且它的值现在显示为红色,表示它已经更改。有关更多信息,请参见 使用“局部变量”窗口。

注意

服务器可能不会反映在调试器窗口中对变量值的更改。有关更多信息,请参见 SQL 调试限制。

打开“监视”窗口。在“文本编辑器”中,拖动 InsertCurrencyCommand 变量到“监视”窗口中的任意位置。

该变量随即添加到受监视的变量列表中。有关更多信息,请参见如何:使用调试器变量窗口。

注意 也可以在“监视”窗口中编辑变量的值。

在文本编辑器中,右击 InsertCurrencyCommand.ExecuteNonQuery 行并在快捷菜单上单击“插入断点”。

在“调试”菜单中单击“继续”,调试器将运行代码直到新的断点。

再次单击“继续”完成对存储过程的调试。

“输出”窗口会显示一条消息,表明已成功部署存储过程,并会显示执行 InsertCurrency.sql 文件中的命令的结果。

示例

用此代码替换存储过程模板。

复制代码

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'

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航