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

So löschen Sie eine Spalte mit einer Einschränkung in SQL Server

Dieser Artikel demonstriert, wie eine Spalte in einer SQL Server-Datenbank gelöscht wird, wenn diese Spalte eine bestehende Einschränkung hat (Hinweis:Sie müssen zuerst die Einschränkung löschen).

Wenn Sie jemals versucht haben, eine Spalte zu löschen, sagen Sie Folgendes:

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Nur um einen Fehler wie diesen zu erhalten:

Msg 5074, Level 16, State 1, Line 1
The object 'taskcode_unique' is dependent on column 'TaskCode'.
Msg 4922, Level 16, State 9, Line 1
ALTER TABLE DROP COLUMN TaskCode failed because one or more objects access this column.

Der Grund dafür ist, dass die Spalte eine bestehende Einschränkung hat und Sie die Tabelle nicht löschen können, wenn sie eine Einschränkung hat.

Daher müssen Sie die Einschränkung löschen, bevor Sie die Tabelle löschen.

Beschränkung zuerst löschen

So heben Sie die Einschränkung auf:

ALTER TABLE Tasks
    DROP CONSTRAINT taskcode_unique;
GO

Ergebnis:

Commands completed successfully.

Dann lass den Tisch fallen

Nachdem Sie die Einschränkung aufgehoben haben, können Sie fortfahren und die Tabelle löschen:

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Ergebnis:

Commands completed successfully.