2017-09-26 72 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"