从表中删除外键。
CREATE TABLE DEPT(DeptNo int primary key,DeptName varchar(20),Mgr int );CREATE TABLE EMPLOYEE(EmpNo int primary key,DeptNo int references DEPT(DeptNo)on delete restrict,LastName varchar(20),FirstName varchar(20),Salary int);
ALTER TABLE EMPLOYEE DROP FOREIGN KEY DEPT;
ALTER TABLE EMPLOYEE DROP FOREIGN KEY EMP_DEPT;
上述语句不删除隐式创建的 EMPLOYEE(DeptNo) 的非唯一 HG 索引。要删除该索引,请使用 sp_iqindex 找到 High_Group 索引名,并使用 DROP INDEX 语句,如下所示:
sp_iqindex(‘EMPLOYEE’);EMPLOYEE DBA DeptNO FP ASIQ_IDX_T27_C2_FP N
EMPLOYEE DBA DeptNO HG ASIQ_IDX_T27_C2_HG N
EMPLOYEE DBA EmpNO FP ASIQ_IDX_T27_C1_FP N
EMPLOYEE DBA EmpNO HG ASIQ_IDX_T27_I11_HG N
EMPLOYEE DBA FirstName FP ASIQ_IDX_T27_C4_FP N
EMPLOYEE DBA LastName FP ASIQ_IDX_T27_C3_FP N
EMPLOYEE DBA Salary FP ASIQ_IDX_T27_C5_FP N
DROP INDEX ASIQ_IDX_T27_C2_HG要删除表,必须删除所有关联的外键约束。请按以下顺序删除外键约束和表:
ALTER TABLE DROP FOREIGN KEY MGR_EMPNO;
DROP TABLE EMPLOYEE;
DROP TABLE DEPT;
删除同一表的另一种方法是:按任意顺序使用下列两个 ALTER TABLE 语句,然后按任意顺序使用 DROP TABLE 语句:
ALTER TABLE DEPT DROP FOREIGN KEY MGR_EMPNO;
ALTER TABLE EMPLOYEE DROP FOREIGN KEY EMP_DEPT;
假设数据库中还包含一个列出了办事处地点的办事处表。employee 表中可能有办事处表的外键,显示雇员工作办事处的地点。该数据库的设计人员可以选择在聘用雇员时不指派办事处地点。此时,外键应允许 NULL 值,因为办事处地点未知或该雇员不在外面的办事处工作。