Disable and enable Foreign Key and Check Constraints

Foreign Key and Check Constraints can be disabled or enabled when required.

To disable a constraint use this code:

USE Database_name
GO
ALTER TABLE Table_name
NOCHECK CONSTRAINT Constraint_name
GO

To disable all table constraints:

USE Database_name
GO
ALTER TABLE Table_name
NOCHECK CONSTRAINT ALL
GO

To enable a disabled constraint with checking the existing rows use this code:

USE Database_name
GO
ALTER TABLE Table_name
WITH CHECK CHECK CONSTRAINT Constraint_name
GO

To enable all disabled table constraints with checking the existing rows:

USE Database_name
GO
ALTER TABLE Table_name
WITH CHECK CHECK CONSTRAINT ALL
GO

If you enable a constraint without checking the existing rows (WITH NOCHECK), SQL Server will mark the constraint as “not trusted”. Trusted constraints help optimizer to get optimized plan and performance.
To see if you have untrusted constraints in your database run:

SELECT *
from sys.check_constraints
WHERE is_not_trusted = 1

SELECT *
from sys.foreign_keys
WHERE is_not_trusted = 1

To list all Check constraints in a database run:
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'CHECK'

To see what Check constraints are disabled run:
SELECT name, is_disabled
FROM sys.check_constraints

To list all Foreign key constraints in a database run:
SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE CONSTRAINT_TYPE = 'FOREIGN KEY'

To see what Foreign keys are disabled run:
SELECT name, is_disabled
FROM sys.foreign_keys


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值