我刚刚在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列(使用Identity)。所以,我试图删除列emp_id如下:
alter table Employee
drop column emp_id
尽管如此,我还没有在表格中插入任何行,我收到了错误
消息5074,等级16,状态1,行1对象 ' PK__Employee__1299A86183CA4FBC'取决于专栏' emp_id'。消息 4922,级别16,状态9,第1行ALTER TABLE DROP COLUMN emp_id失败 因为一个或多个对象访问此列。
请帮助!!!
答案 0 :(得分:2)
这样的事情会有所帮助。
ALTER TABLE Employee
DROP CONSTRAINT PK__Employee__1299A86183CA4FBC;
alter table Employee
drop column emp_id
答案 1 :(得分:0)
我通过执行以下查询解决了该问题:我需要删除一列,然后从该列中删除所有条目以释放数据库大小,我的初始表结构如下所示:
创建表格中的单词(_id,单词,同义词,收藏夹,历史记录,updDate)
我想要表格如下
创建表格中的单词(_id,单词,收藏夹,历史记录,更新日期)
所以我在下面的查询中执行,并删除了“同义词”列
BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(_id,word,favorite,history,updDate);
INSERT INTO t1_backup SELECT _id,word,favorite,history,updDate FROM words;
DROP TABLE words;
CREATE TABLE words(_id,word,favorite,history,updDate);
INSERT INTO words SELECT _id,word,favorite,history,updDate FROM t1_backup;
DROP TABLE t1_backup
COMMIT;