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

外部キー違反が原因でSQLexceptionがスローされたかどうかを確認するにはどうすればよいですか?

    SQLServerを使用していると仮定します。

    Webアーカイブの使用-https://web.archive.org/web/20190120182351/https://blogs.msdn.microsoft.com/tomholl/2007/08/01/mapping-sql-server-errors-to-net -例外-楽しい方法/

    try
    {
        # SQL Stuff
    }
    catch (SqlException ex)
    {
        if (ex.Errors.Count > 0) // Assume the interesting stuff is in the first error
        {
            switch (ex.Errors[0].Number)
            {
                case 547: // Foreign Key violation
                    throw new InvalidOperationException("Some helpful description", ex);
                    break;
                case 2601: // Primary key violation
                    throw new DuplicateRecordException("Some other helpful description", ex);
                    break;
                default:
                    throw new DataAccessException(ex);
            }
        }
    
    }
    

    ケース547はあなたの男です。

    更新 上記はサンプルコードであり、使用しないでください。理由を説明するためにリンクをたどってください。



    1. 3SQLクエリのパフォーマンスを遅らせる厄介なI/O統計

    2. MariaDBサーバーをDockerコンテナにデプロイする方法

    3. 階層SQLの質問

    4. データベースのスケーリングのベストプラクティス:パート2