sql >> Databasteknik >  >> RDS >> Sqlserver

Kan inte fånga SQL Server-ändringstabellfel

Fel som uppstår som ett resultat av batch-omkompilering efter uppskjuten namnupplösning kan inte fångas upp på samma nivå som felet uppstår. En lösning är att linda in DDL 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. Extremt grundläggande PHP och Mysql

  2. Får PHP-fel Varning:fputcsv() förväntar sig att parameter 2 är array

  3. Hur gör man en sql-sökfråga mer kraftfull?

  4. Konvertera en binär till decimal med MySQL