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

Kan ikke fange SQL Server-ændringstabelfejl

Fejl, der opstår som følge af batch-rekompilering efter udskudt navneopløsning, kan ikke fanges på samme niveau, som fejlen opstår. En løsning er at indpakke DDL'en i dynamisk SQL:

BEGIN TRY
    EXEC(N'ALTER TABLE [dbo].[my_table_name] ADD PRIMARY KEY ([id]);');
END TRY
BEGIN CATCH
    IF ERROR_NUMBER() = 1779
    BEGIN
        --handle expected errors
        PRINT 'Primary Key already exists. ';
    END
    ELSE
    BEGIN
        --raise other unexpected errors
        THROW;
    END;
END CATCH;


  1. Oracle indsæt i retur

  2. Sammenføj bord med sammensat nøgle to gange

  3. PHP7.0-FPM med Docker:Kan ikke indlæse dynamisk bibliotek OCI8

  4. Fjern prikker og kommaer fra kolonneværdier