【问题标题】:Get Specific Info From SQL Error Message 547从 SQL 错误消息 547 中获取特定信息
【发布时间】:2011-09-06 23:35:48
【问题描述】:

如何从 sql 错误消息编号 547 中正确提取特定信息?

所需信息:

  • 表名
  • 约束名称
  • 列名

代码:

Try 
  ....
Catch ex As System.Data.SqlClient.SqlException 
        If ex.Number = 547 Then

        End If
End Try

示例消息:

UPDATE 语句与 COLUMN CHECK 约束冲突 'CK_生日'。数据库“Northwind”表中发生冲突 “员工”,“出生日期”列。

【问题讨论】:

  • 您只关心(比如说)此消息的美国英语版本吗?还有一个特定的 SQL Server 版本...
  • 我需要它对多个版本的 sql 稳定,但只有美国英语。

标签: .net sql-server vb.net


【解决方案1】:

没有直接的方法可以单独获取这些信息。

这一切都被连接到错误消息中。

您可以使用select * from sys.messages where message_id=547 查看您需要处理的各种不同语言格式的消息,以便提取组成部分,然后可能使用正则表达式和基于此信息的捕获组。

【讨论】:

  • 不是我要找的答案,但可能和它一样好。谢谢! :)
【解决方案2】:

除了查询之外,这里还有一个包含 sys.messages 查询的 powershell 脚本。

http://blogs.msdn.com/b/buckwoody/archive/2009/04/30/and-the-winner-is-get-sql-server-error-messages-from-powershell.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-04
    • 2023-03-24
    • 2020-12-03
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    相关资源
    最近更新 更多