【问题标题】:Smart way to get unique index name from SqlException message?从 SqlException 消息中获取唯一索引名称的智能方法?
【发布时间】:2011-08-08 13:10:39
【问题描述】:

是否有任何智能/最佳方法可以从 SqlException 消息中获取唯一索引名称?像下面这样:

无法在对象“partners.Partner”中插入重复的键行 唯一索引“IX_Partner_SerialId”。声明已终止。

我需要得到IX_Partner_SerialId 而不必操作异常消息字符串?类似于异常对象中的变量?

【问题讨论】:

  • 为什么不能操作字符串?
  • 我可以操作字符串,但我确信可能有一种聪明的方式,比如字典存储这些变量,以便我们可以使用它?如果没有其他选择,那么这将是唯一的方法。
  • 我不认为 SQL 输出异常的详细信息 - 它在消息中,您可能会得到的只有这些。如果它传递了一个 URN 或其他导致错误的东西会很好,但是有太多的可能性可以有效地建模。
  • 您可以在此处查看有关异常的所有信息:msdn.microsoft.com/en-us/library/…

标签: sql-server exception ado.net sqlexception unique-index


【解决方案1】:

很遗憾没有。

您必须解析消息文本。 您可以通过查询找到消息文本和错误编号

SELECT * FROM SYSMESSAGES

【讨论】:

    猜你喜欢
    • 2018-07-28
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2022-06-15
    • 2014-05-12
    • 1970-01-01
    相关资源
    最近更新 更多