SQL Server 临时禁用和启用所有外键约束
我们在删除一个表数据时,经常遇到存在约束,删除不了该数据,可以先禁用约束,然后删除掉该数据后,在启用约束,
注意:禁用约束后约束的两个表数据都要删掉,不然数据会不对
禁用:
select * from (
select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束
from sysobjects a ,sysobjects b
where a.xtype ='f' and a.parent_obj = b.id)abs
where 禁用约束 like '%删除时遇到的约束名%'
启用:
select * from (
select 'ALTER TABLE [' + b.name + '] CHECK CONSTRAINT ' + a.name +';' as 启用约束
from sysobjects a ,sysobjects b
where a.xtype ='f' and a.parent_obj = b.id)abs
where 启用约束 like '%删除时遇到的约束名%'
上面两行sql是查询出约束的sql,然后把查出来的sql执行一下就可以了【除了”删除时遇到的约束名“相当于变量,其他照抄】

浙公网安备 33010602011771号