sql server怎样删除外键约束?
1.首先,我们使用SQLSERVER2008打开需要删除外键约束的表,点击左侧的“dbo”通道项,选择“setclick”。
2.问题后,我们鼠标左键单击页面上的“删除主键”选项。
3.然后左键点击“是”在弹出页面中删除。
注意事项:
可以双击键约束来添加外键约束,它有四个不同的选项:CASCADE、SETNULL、NOACTION、restricted。
1.级联:删除或更新父表中相应的行,并自动删除或更新表中匹配的行。[在删除CANSCADE和更新CANSCADE都支持InnoDB。
2.SETNULL:删除或更新父表中对应的行,并将子表中的外键列设置为空。注意,这些外键列没有设置为NOTNULL。InnoDB支持删除集空值和更新集空值。
3.无操作:InnoDB拒绝删除或更新父表。
4.限制:拒绝删除或更新父表。
用这个跟:alter table 表名称 drop constraint 外键的名称
使用如下SQL语句查询出表中外键约束名称:
1 select name 2 from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id 3 where f.parent_object_id=object_id('表名')
执行如下SQL语句删除即可。
1 alter table 表名 drop constraint 外键约束名
扩展资料:
注意事项
键约束可双击关系线添加外键约束,外键约束有四种不同的选项:CASCADE, SET NULL, NO ACTION, RESTRICT。
1、CASCADE : 从父表中删除或更新对应的行,同时自动的删除或更新自表中匹配的行。[ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。
2、SET NULL: 从父表中删除或更新对应的行,同时将子表中的外键列设为空。[注意,这些在外键列没有被设为NOT NULL时才有效。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持。
3、NO ACTION: InnoDB拒绝删除或者更新父表。
4、RESTRICT: 拒绝删除或者更新父表。
然后删除它
我给个例子
--测试环境
--主表
create table test1(id int primary key not null,value int)
insert test1 select 1,2
go
--从表
create table test2(id int references test1(id),value int)
go
--第一步:找出test2表上的外键约束名字
--2000
exec sp_helpconstraint 'test2'
--可以在constraint_name 属性中找到外键约束名字
--2005
select name
from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id
where f.parent_object_id=object_id('test2')
/*
name
---------------------------------
FK__test2__id__08EA5793*/
--第二步:删除外键约束
alter table test2 drop constraint FK__test2__id__08EA5793
--第三步:检查表上是否还有外键约束
--只要使用第一步里面的查找语句即可
alter table 表名称 drop constraint 外键的名称
也可以在sql server的管理工具中,找到表,找到"键"中的相应外键,右击删除
删除外键约束的方法LS说的是对的