sql >> データベース >  >> RDS >> Sqlserver

挿入中にC#でSQLの一意の制約違反をキャッチするための最良の方法

    探しているのはSqlException、特に主キー制約の違反です。スローされた例外のnumberプロパティを確認することで、この例外からこの特定のエラーを取得できます。この回答は、おそらく必要なものに関連しています。SQLServer2008のエラーコードから主キーの重複を特定する方法

    要約すると、次のようになります。

    // put this block in your loop
    try
    {
       // do your insert
    }
    catch(SqlException ex)
    {
       // the exception alone won't tell you why it failed...
       if(ex.Number == 2627) // <-- but this will
       {
          //Violation of primary key. Handle Exception
       }
    }
    

    編集:

    これは少しハッキーかもしれませんが、例外のメッセージコンポーネントを調べることもできます。このようなもの:

    if (ex.Message.Contains("UniqueConstraint")) // do stuff
    


    1. スタートレックの3Dチェスデータモデル

    2. MySQLコマンドプロンプトを介してWordPress管理者パスワードをリセットする方法

    3. SQL Server(T-SQL)でデータベースのANSI_NULLS設定を見つける方法

    4. TSQLPIVOTの複数の列