我想知道,如果我能捕获数据库中发生的所有错误并将其记录到某个用户定义的表中。
原因:
为什么我这样,我的网络应用程序以Sql2005
作为后端运行。 Web应用程序是使用Linq2Sql
开发的。它是在2008R2
上开发的,Sql2005
上部署在Shared Hosting environment
上。
我不断收到datetime datatype
错误,因为在2008年我使用了date datatype
。
所以,我想要的是在内部捕获任何类似的异常,发生在我的数据库中的任何地方,并使用字段将其记录到我的自定义表
要求
请注意
我不想编写表格式异常处理程序。我想要一些通用的方法来获取所有异常,就像我们在ASP.Net,Global.asax中处理错误一样。
异常我正在
The version of SQL Server in use does not support datatype 'date'.
基于以上异常,我不确定哪个表抛出此异常。所以我想要一个存储过程来捕获详细信息并保存到我的自定义表中。
答案 0 :(得分:1)
这些错误不是内部到SQL Server。它甚至可能不是SQL给你的,而是db驱动程序。
如果您正在使用存储过程,那么SQL服务器可能会阻止这些s' proc甚至使用不受支持的数据类型用法创建。
考虑到你正在使用LINQ,我的猜测是LINQ本身就解决了这个问题,你需要使用围绕数据库调用的常规异常处理来查找它。
当然,更好的路径是重新生成模型和/或进行代码分析以找到对无效数据类型的所有引用。或者,更好的是,切换到与其SQL Server版本有点同步的主机。从那时起,已经有很多安全性和性能改进。