Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Versuchen Sie Catch. Alter Table kann nicht verarbeitet werden

Denn einer davon ist ein transact SQL-Befehl (der try catch) und der andere eine DDL-Anweisung.

Sie sollten wahrscheinlich besser abfragen, ob die Spalte existiert, bevor Sie die alter-Anweisung ausführen.

Um dies mit MSSQL zu tun, siehe Wie überprüfe ich, ob eine Spalte in einer SQL Server-Tabelle existiert?

Speziell für Ihren Fall,

IF COL_LENGTH('nyork', 'Qtr') IS NULL
BEGIN
    alter table nyork
    add [Qtr] varchar(20)
END