Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak mogę się dowiedzieć, czy zgłoszono wyjątek SQL z powodu naruszenia klucza obcego?

Załóżmy, że używasz SQL Server.

Korzystanie z archiwum internetowego — https://web.archive.org/web/20190120182351/https://blogs.msdn.microsoft.com/tomholl/2007/08/01/mapping-sql-server-errors-to-net -wyjątki-zabawne-sposób/

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);
        }
    }

}

Sprawa 547 to twój mężczyzna.

AKTUALIZUJ Powyższe jest kodem przykładowym i nie należy go używać. Kliknij link, aby wyjaśnić, dlaczego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wprowadzenie do synonimów w SQL Server

  2. Ograniczenie tylko dla jednego rekordu oznaczonego jako domyślne

  3. Jak utworzyć alias typu danych zdefiniowanego przez użytkownika w SQL Server przy użyciu T-SQL

  4. 6 sposobów konwersji ciągu na wartość daty/godziny w SQL Server

  5. Usuń SCHEMABINDING z widoku w SQL Server