2014-03-13 50 views
0
影响记录的错误进行查询

我添加了一个新的列到已经存在的表如何撤消其在SQL

alter table Employee 
add Emp_dept varchar(50) 

尝试到现在,表中插入列,但产量并不如我预期

insert into Employee(Emp_dept) 
values ('Accounting'), 
('Accounting'), 
('Technical'), 
('Technical'), 
('Managing'), 
('Managing'); 
+0

这取决于很多事情。你使用的是什么RDBMS?你的输出是什么,你想要的是什么? – jaredk

+0

您可以使用'UPDATE Employee SET emp_dept IS NULL'来擦除该列中的现有数据。 – SchmitzIT

+2

您正在寻找'UPDATE'语句而不是'INSERT'。请阅读SQL教程。这是基本的SQL知识。 –

回答

2

假设你开始了一个表:

Employee 
+----+-------+ 
| ID | Name | 
+----+-------+ 
| 1 | Joe | 
| 2 | Bob | 
| 3 | Mary | 
+----+-------+ 

那么应用的ALTER TABLE,你可能得到:

Employee 
+----+-------+----------+ 
| ID | Name | Emp_dept | 
+----+-------+----------+ 
| 1 | Joe |  NULL | 
| 2 | Bob |  NULL | 
| 3 | Mary |  NULL | 
+----+-------+----------+ 

如果再进行插入,和它的工作在所有的,我希望,那么你会碰到这样的:

Employee 
+----+-------+------------+ 
| ID | Name | Emp_dept | 
+----+-------+------------+ 
| 1 | Joe |  NULL | 
| 2 | Bob |  NULL | 
| 3 | Mary |  NULL | 
| 4 | NULL | Accounting | 
| 5 | NULL | Accounting | 
| 6 | NULL | Technical | 
| 7 | NULL | Technical | 
| 8 | NULL | Managing | 
| 9 | NULL | Managing | 
+----+-------+------------+ 

在这里,我认为ID是自动增量列和NameNULL能够。

为了扭转这种情况,您可以尝试:

DELETE FROM Employee WHERE Emp_dept IS NOT NULL 

其次:

ALTER TABLE Employee DROP COLUMN Emp_dept 

这应该返回到你在哪里之前将之列,这似乎是你想要什么。

+0

谢谢你Emmet .... – clarifier