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

Nie można wykryć błędu zmiany tabeli programu SQL Server

Błędy, które występują w wyniku ponownej kompilacji wsadowej po odroczonym rozpoznawaniu nazw, nie mogą zostać przechwycone na tym samym poziomie, na którym wystąpił błąd. Jednym z obejść jest zawinięcie DDL w dynamiczny 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Procedura SQL SERVER Niespójna wydajność

  2. Potrzebuję zapytania sql, aby pogrupować według nazwy, ale zwrócić inne pola na podstawie najnowszego wpisu

  3. Jawną wartość kolumny tożsamości w tabeli można określić tylko wtedy, gdy jest używana lista kolumn, a IDENTITY_INSERT jest WŁĄCZONY SQL Server

  4. Zaktualizuj część czasu w DateTime w SQL

  5. Napraw komunikat o błędzie 4151 „Typ pierwszego argumentu do wartości NULLIF nie może być stałą NULL, ponieważ typ pierwszego argumentu musi być znany” w programie SQL Server