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

Sådan droppes en kolonne med en begrænsning i SQL Server

Denne artikel viser, hvordan man sletter en kolonne i en SQL Server-database, når den kolonne har en eksisterende begrænsning (Tip:Du skal først slippe begrænsningen).

Hvis du nogensinde har prøvet at droppe en kolonne, så sig sådan her:

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Kun for at få en fejl som denne:

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.

Årsagen er, at kolonnen har en eksisterende begrænsning, og du kan ikke slippe tabellen, når den har en begrænsning.

Derfor skal du droppe begrænsningen, før du dropper tabellen.

Slip begrænsningen først

Sådan slipper du begrænsningen:

ALTER TABLE Tasks
    DROP CONSTRAINT taskcode_unique;
GO

Resultat:

Commands completed successfully.

Slip derefter tabellen

Nu hvor du har droppet begrænsningen, kan du gå videre og slippe tabellen:

ALTER TABLE Tasks
    DROP COLUMN TaskCode;
GO

Resultat:

Commands completed successfully.

  1. ALTER TABLE-sætningen var i konflikt med FOREIGN KEY-begrænsningen

  2. Tilføj et linket server-login i SQL Server (T-SQL-eksempel)

  3. Sådan finder du ASCII-koden for en given karakter i MySQL

  4. Laravel-5 'LIKE' ækvivalent (veltalende)