2017-01-17 38 views
0

我刚刚创建了一个表,如下面MS SQL错误而删除列

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) 
) 

创建表之后,我觉得自己像自动填充emp_id列(使用标识)。所以,我试图删除列EMP_ID如下:

alter table Employee 
drop column emp_id 

即使这样,我也没有在表中插入任何行呢,我收到错误

消息5074,级别16,State 1,Line 1对象 'PK__Employee__1299A86183CA4FBC'依赖于列'emp_id'。消息 4922,级别16,状态9,行1 ALTER TABLE DROP COLUMN emp_id失败 ,因为一个或多个对象访问此列。

请帮忙!!!

+0

嗨,这是因为您正在使用兴奋剂的列已被其他表引用。如果你真的想放弃它,请先删除约束,然后删除列。 –

+2

'emp_id'是你的主键,因为你的创建表查询'主键(emp_id)',所以你应该放弃该主键约束之前,删除该列 –

+1

可能重复[如何删除约束的列?](http:///stackoverflow.com/questions/8641954/how-to-drop-column-with-constraint) –

回答

2

像这样的东西可以帮助。

ALTER TABLE Employee 
    DROP CONSTRAINT PK__Employee__1299A86183CA4FBC; 


    alter table Employee 
    drop column emp_id 
+0

请试试这个我希望它能解决你的问题。 –

+0

因此,想法是首先放弃像主键/ FK等所有约束,然后改变表 –

+0

注意:当重新添加列时,您需要重新添加PK。 –