外鍵
回答
刪除外鍵約束,然後刪除表一次,沒有人是被迫承認它。如果第二個表中的列(未被刪除的列)未在別處使用,那麼在刪除約束之後,您應該刪除整列。
在允許刪除它引用的表之前,您需要刪除約束。 SQL Server使用的語法如下:
ALTER TABLE <table_name> DROP FOREIGN KEY <foreignkey_name>
請記住,在表中存在約束引用要刪除所以這就是你應該改變表中的一個。
預期的目標是孤立那些記錄,而不再使用外鍵?如果是這樣,前面提到的關於禁用密鑰的方法沒有問題,否則您可能希望刪除引用您想要先刪除的表的記錄(或者將其更新爲指向更適當的記錄,或者如果在此處有意義的話則更新爲NULL)案件)。我似乎是從另一個方向來看待這個問題,你確定外鍵是沒有意義的,如果是的話,爲什麼不把它刪除呢?在某些時候,有人想限制這種行爲,在禁用約束條件之前,我確保我理解他們的目的,並且有很好的理由繞過這些保護措施。
如果可以的話,我會給你加10 – HLGEM 2008-12-31 14:24:39
通過使用級聯刪除
不刪除與外鍵約束的表,而不考慮外鍵的表的影響。讓我來解釋簡單地刪除外鍵,然後用一個例子刪除表的影響。
考慮兩個表格 - 零件和訂單細節。有一個外鍵約束表示在將零件放入orderdetails表之前零件必須存在。存儲在orderdetail表中的是零件表中零件的ID,而不是零件名稱或描述。假設您刪除外鍵,然後刪除零件表。現在orderdetail表中的所有數據都是無用的,因爲你無法知道訂購的部件是什麼。這包括尚未發貨的訂單以及客戶可能打電話詢問有關問題的訂單。此外,您現在無法重新創建數據,除非通過恢復備份(希望您擁有一個備份)。
此外,假設您想要刪除表並重新創建它以對錶進行更改。然後重新加載信息並重新打開外鍵。在這種情況下,您應該使用alter table而不是drop並重新創建,但如果您不這樣做,您最終可能會得到與最初不同的id號,因此現在訂單將引用錯誤的id。這可以安全地完成,但是你必須非常仔細地做,並且要考慮後果。
- 1. 外鍵的SQL外鍵
- 2. 外鍵:與外鍵約束
- 3. 主鍵和外鍵
- 4. 主鍵和外鍵
- 5. LinqToEntities鍵和外鍵
- 6. 主鍵和外鍵?
- 7. 外鍵和主鍵
- 8. 主鍵VS外鍵
- 9. Entityobject鍵和外鍵
- 10. 外鍵
- 11. 外鍵
- 12. 外鍵
- 13. 外鍵
- 14. 外鍵
- 15. 外鍵
- 16. 外鍵
- 17. 添加外鍵外鍵約束表
- 18. 主鍵的外鍵外國/初級
- 19. 將外鍵從外鍵拉到表中
- 20. 外鍵上的外鍵 - SQL Server
- 21. innodb和外鍵 - 外鍵約束失敗
- 22. MySQL的外鍵到另一個外鍵
- 23. Android OrmLite外鍵/外鍵集合
- 24. 從主鍵的外鍵值
- 25. ScalaQuery多主鍵和外鍵
- 26. 主鍵關係的外鍵
- 27. 非主鍵的外鍵
- 28. 複合主鍵或外鍵
- 29. 複合鍵的外鍵
- 30. uml中的主鍵/外鍵
或者進入管理工作室,選擇表格,右鍵單擊,選擇設計,單擊關係按鈕,然後刪除您在左側列表中看到的所有內容。 – 2008-12-31 06:57:06