sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg vide, om en SQL-undtagelse blev kastet på grund af overtrædelse af en fremmednøgle?

Antag, at du bruger SQL Server.

Brug af webarkivet - https://web.archive.org/web/20190120182351/https://blogs.msdn.microsoft.com/tomholl/2007/08/01/mapping-sql-server-errors-to-net -undtagelser-den-sjove-måde/

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

}

Sag 547 er din mand.

OPDATERING Ovenstående er eksempelkode og bør ikke bruges. Følg linket for at forklare hvorfor.



  1. Oracle PL/SQL:Eksporter data fra en tabel til CSV

  2. PostgreSQL returnerer en funktion med en brugerdefineret datatype

  3. SQLite DROP VIEW

  4. Sådan installeres MySQL med phpMyAdmin på Ubuntu 14.04