2014-03-13 58 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