2017-01-17 10 views
0

ich nur eine Tabelle, wie unten in MS SQL erstelltFehler beim Löschen einer Spalte

create table Employee 
(emp_id smallint not null, 
employee_name varchar (30) not null, 
salary money not null, 
department varchar(30), 
address varchar(40), 
primary key(emp_id) 
) 

Nach Erstellen der Tabelle, ich fühle mich wie Auto Bestücken der Spalte emp_id (unter Verwendung von Identity). Also, ich habe versucht, um die Säule zu fallen Emp_ID wie folgt:

alter table Employee 
drop column emp_id 

Obwohl habe ich keine Zeilen in der Tabelle noch eingefügt, erhalte ich den Fehler

Msg 5074, Ebene 16, Status 1, Zeile 1 Das Objekt 'PK__Employee__1299A86183CA4FBC' ist abhängig von der Spalte 'emp_id'. Nachricht 4922, Ebene 16, Status 9, Zeile 1 ALTER TABLE DROP COLUMN emp_id fehlgeschlagen , da ein oder mehrere Objekte auf diese Spalte zugreifen.

Bitte helfen Sie !!!

+0

HI es ist, weil die Spalte, die Sie dotieren, in anderer Tabelle referenziert worden ist. Wenn Sie es wirklich löschen möchten, löschen Sie zuerst die Einschränkung und dann die Spalte. –

+2

'emp_id' ist Ihr Primärschlüssel wie in Ihrer create table-Abfrage' Primärschlüssel (emp_id) ', also sollten Sie diese Primärschlüssel-Einschränkung löschen, bevor Sie diese Spalte löschen –

+1

Mögliches Duplikat von [Wie Spalte mit Einschränkung gelöscht wird?] (Http://stackoverflow.com/questions/8641954/how-to-drop-column-with-constraint) –

Antwort

2

So etwas kann helfen.

ALTER TABLE Employee 
    DROP CONSTRAINT PK__Employee__1299A86183CA4FBC; 


    alter table Employee 
    drop column emp_id 
+0

Bitte versuchen Sie dies Ich hoffe, es wird Ihr Problem lösen. –

+0

Also die Idee ist zuerst fallen alle Einschränkungen wie Primärschlüssel/FK usw. und dann ändern Sie die Tabelle –

+0

HINWEIS: Wenn Sie die Spalte erneut hinzufügen, müssen Sie auch die PK neu hinzufügen. –

Verwandte Themen