C# 在主键列(表)中插入重复值时,SQL Server返回哪个错误代码

C# 在主键列(表)中插入重复值时,SQL Server返回哪个错误代码,c#,sql,sql-server,sql-server-2005,ado.net,C#,Sql,Sql Server,Sql Server 2005,Ado.net,在主键列(表)中插入重复值时,SQL Server返回哪个错误代码 您要查找的错误代码是2601。使用属性 错误代码为2627(违反主键约束) 2601 示例:无法在具有唯一索引的对象“my_table_name”中插入重复的键行 2627 示例:违反主键约束“我的约束名”。无法在对象“我的表名”中插入重复键 来源:测试起来很容易,不是吗?它不是一个方法,它是sql异常发生时抛出的SqlException对象可用的属性。此代码每次都相同或不同?当主键中的重复值同时违反2601和2627时,我的p

在主键列(表)中插入重复值时,SQL Server返回哪个错误代码


您要查找的错误代码是2601。使用属性

错误代码为2627(违反主键约束)

2601

示例:无法在具有唯一索引的对象“my_table_name”中插入重复的键行

2627

示例:违反
主键
约束“我的约束名”。无法在对象“我的表名”中插入重复键


来源:

测试起来很容易,不是吗?它不是一个方法,它是sql异常发生时抛出的SqlException对象可用的属性。此代码每次都相同或不同?当主键中的重复值同时违反2601和2627时,我的project sql server中的@ChrisGessler将返回2627。因为您说过当主键中的值重复时,2601将是错误代码,所以我请求帮助。我认为2627将是OP寻求的更合适的错误代码。你说呢?对将来看这个的人来说。2627与2601有很大不同。2601是唯一的密钥冲突2627是主键冲突。这意味着,如果你像我一样,你会对大多数主键使用标识值。这意味着你永远不应该得到2627。
  try
     {
         dataAdapterObj = new  SqlDataAdapter(selectString, conObj);
         return true;
     }
     catch (Exception e)
     {
         MessageBox.Show("Exception is : " + e.ToString());
         return false;
     }
catch (SqlException e)
{
   MessageBox.Show(String.Format("Exception is {0} - {1}", e.Number, e.Message)); 
}
  try
     {
      // do insert
     }
  catch (SqlException e)
    {
       if (e.Number == 2627)
           //do something
    }