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

时间:2008-12-10 18:56:13

标签: .net sql-server error-handling clr

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

的内容

Msg 6522,Level 16,State 1,Procedure myProcedure,Line 0 在执行用户定义的例程或聚合“myProcedure”期间发生.NET Framework错误: System.Exception:测试异常 System.Exception的:    在DummyDLL.myProcedure(String dummyInput)

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

谢谢!

1 个答案:

答案 0 :(得分:3)

我不确定是否注册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