从SQL错误消息547获取特定信息

时间:2011-09-06 23:35:49

标签: .net sql-server vb.net

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

所需信息:

  • 表名称
  • 约束名称
  • 列名

代码:

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

        End If
End Try

示例消息:

  

UPDATE语句与COLUMN CHECK约束冲突   'CK_Birthdate'。冲突发生在数据库'Northwind',表中   '员工',专栏'BirthDate'。

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

除了查询之外,还有一个powershell脚本,它包装了sys.messages查询。

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