在学习数据库的过程中提到了使用CASCADE关键字来强制删除已被引用的关系(及其引用方)。
在实践过程中,使用SQL Server执行“ DROP TABLE Course CASCADE”却被提示有语法错误。
事实上报错的原因在于SQL Server不支持在删除过程中使用CASCADE关键字(见课本下图):
可看出SQL Server在删除表时并不区分RESTRICT或是CASCADE。
既然不支持,那为何又能识别CASCADE为关键字呢?
事实上在SQL Server中CASCADE关键字用于在建表操作时预先建立级联关系(通常和DENY关键字配合使用,所以报有语法错),建表后执行DROP操作时就不需要用户再指定删除模式了。
因此标题的那句“CASCADE”完全是用错了地方,应予以删除。
若因外键问题报错则应先将引用方删除或创建前使用CASCADE关键字确立级联关系。
本文探讨了在SQLServer中使用CASCADE关键字进行级联删除时常见的误解。指出SQLServer不支持在DROP TABLE命令中直接使用CASCADE关键字来删除依赖的对象,并解释了如何正确地设置级联删除。


被折叠的 条评论
为什么被折叠?



