2017-09-26 84 views
0

这里我有3个表名为T1,T2,T3如何删除有外键的行?

id dept_name 

201  CSE 
202  ECE 
203  IT 
204  MECH 
205  EEE 
    **T1** 

id dept_per 

201  50 
202  60 
203  70 
204  80 
205  80 
    **T2** 

id  dept_rank 
201  2 
202  4 
203  1 
204  5 
205  3 
    **T3** 

这里Id是主键和T2 & T3有其foriegn Key.Now我想表T3中删除单个行,但它不允许我因外键而删除该行。我如何删除该行而不删除外键。

+0

提示:'nocheck约束条件全部' – Sami

+0

如果您删除有关系的行。在删除主键之前,您需要删除关系。 – yesemsanthoshkumar

+0

@Sami所以我们可以使用这个nocheck约束来禁用数据库中的所有约束吗? –

回答

0

我从旧后这个答案刚才

How can foreign key constraints be temporarily disabled using T-SQL?

如果您希望禁用数据库中的所有约束只是运行这段代码:

-- disable all constraints 
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all" 

要 将它们重新打开,运行:(打印是可选的,当然是 只是列出了表格)

-- enable all constraints 
exec sp_MSforeachtable @command1="print '?'", 
    @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"