.net - 获取 SQL Server CLR 运行时中引发的错误的行号

标签 .net sql-server error-handling clr

我创建了一个在 SQL 2k5 上运行的 CLR 存储过程,我想知道是否有任何方法可以获取 .NET 代码引发的异常的行号。当抛出异常时,我会得到类似

的信息

消息 6522,级别 16,状态 1,过程 myProcedure,第 0 行 执行用户定义例程或聚合“myProcedure”期间发生 .NET Framework 错误: System.Exception:测试异常 系统异常: 在 DummyDLL.myProcedure (字符串 dummyInput) .

是否有某种方法可以加载程序集以提供特定的行号,而不仅仅是抛出错误的函数?程序集本身是用 .pdb 编译的,但当我最初加载程序集时,SQL 2k5 似乎没有读取它。

谢谢!

最佳答案

我不确定注册 PDB 是否也会为您提供行号(理论上应该如此)。

您确定您正确注册了 PDB 吗?下面告诉您如何执行此操作:

http://blogs.msdn.com/ericnel/archive/2005/03/18/398534.aspx

基本上,语法是:

CREATE ASSEMBLY Asm1 FROM 'MyAssembly.dll'
GO
ALTER ASSEMBLY Asm1 ADD FILE FROM 'MyAssembly.pdb'
GO

关于.net - 获取 SQL Server CLR 运行时中引发的错误的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/357145/

相关文章:

c# - OR LIKE sql查询 bool 错误

php - PHP处理脚本包含而不抑制其错误和警告

.net - WPF 3.5 中不一致的抗锯齿

javascript - 如何将 Eval() 传递给 Javascript 函数

.net - 在 VB 中的自定义 Linq Provider 中实现字符串比较器

node.js - 如何使用 Sequelize 的 findOrCreate() 捕获错误

list - F# 匹配模式鉴别器未定义问题

c# - 测试中的代码覆盖率

sql - 按组中的最大值排序

sql - 在 SQL Server 中创建和管理全局 Procs 和 UDF 的最佳方法是什么?