有没有办法得到有关Sql Server2005引发的内部异常的通知

时间:2013-03-07 13:09:04

标签: asp.net sql-server-2008 tsql sql-server-2005

我想知道,如果我能捕获数据库中发生的所有错误并将其记录到某个用户定义的表中。

原因:

为什么我这样,我的网络应用程序以Sql2005作为后端运行。 Web应用程序是使用Linq2Sql开发的。它是在2008R2上开发的,Sql2005上部署在Shared Hosting environment上。

我不断收到datetime datatype错误,因为在2008年我使用了date datatype

所以,我想要的是在内部捕获任何类似的异常,发生在我的数据库中的任何地方,并使用字段将其记录到我的自定义表

要求

  1. 表格引发异常的名称
  2. 程序名称,以备将来使用时
  3. 异常消息
  4. 日期发生时间
  5. 请注意

    我不想编写表格式异常处理程序。我想要一些通用的方法来获取所有异常,就像我们在ASP.Net,Global.asax中处理错误一样。

    异常我正在

    The version of SQL Server in use does not support datatype 'date'.

    基于以上异常,我不确定哪个表抛出此异常。所以我想要一个存储过程来捕获详细信息并保存到我的自定义表中。

1 个答案:

答案 0 :(得分:1)

这些错误不是内部到SQL Server。它甚至可能不是SQL给你的,而是db驱动程序。

如果您正在使用存储过程,那么SQL服务器可能会阻止这些s' proc甚至使用不受支持的数据类型用法创建。

考虑到你正在使用LINQ,我的猜测是LINQ本身就解决了这个问题,你需要使用围绕数据库调用的常规异常处理来查找它。

当然,更好的路径是重新生成模型和/或进行代码分析以找到对无效数据类型的所有引用。或者,更好的是,切换到与其SQL Server版本有点同步的主机。从那时起,已经有很多安全性和性能改进。