System.Data.SqlClient.SqlException.Number 在所有版本的 SQL 服务器中是否相同?

Is System.Data.SqlClient.SqlException.Number the same in all version's of SQL Server?

我只想将 SQL Exception 分类为 catch 块上的 Login failed for user 'username' 消息。所以我就这样试了。

   if(exception.Number == 18456)
       return false;
   else
       throw exception;

我想 throw all other exception 除了登录失败。

我在此处使用的号码是否与 Sql 服务器的所有版本中的此错误文本相同?

SQL 服务器错误代码不会改变 - 一旦定义,它们将保持不变,每个版本可能会添加新的错误代码,但现有的错误代码保持不变。

See this link for a list of all SQL Server error codes 自版本 2008 R2 起。

这些消息(或带有占位符的消息模板)显示在 sys.messages 系统目录视图中。