1. 程式人生 > >SQL Server "DROP TABLE 表名 CASCADE" 顯示"CASCADE"附近有語法錯誤的原因

SQL Server "DROP TABLE 表名 CASCADE" 顯示"CASCADE"附近有語法錯誤的原因

在學習資料庫的過程中提到了使用CASCADE關鍵字來強制刪除已被引用的關係(及其引用方)。

在實踐過程中,使用SQL Server執行“ DROP TABLE Course CASCADE”卻被提示有語法錯誤。

事實上報錯的原因在於SQL Server不支援在刪除過程中使用CASCADE關鍵字(見課本下圖):


可看出SQL Server在刪除表時並不區分RESTRICT或是CASCADE。

既然不支援,那為何又能識別CASCADE為關鍵字呢?

事實上在SQL Server中CASCADE關鍵字用於在建表操作時預先建立級聯關係(通常和DENY關鍵字配合使用,所以報有語法錯),建表後執行DROP操作時就不需要使用者再指定刪除模式了。

因此標題的那句“CASCADE”完全是用錯了地方,應予以刪除。

若因外來鍵問題報錯則應先將引用方刪除或建立前使用CASCADE關鍵字確立級聯關係。