有没有办法检查表格是否启用了Cascade Delete?我正在查看表的脚本(来自SQL Server),我没有看到Cascade Delete的任何迹象。
答案 0 :(得分:13)
您可以使用INFORMATION_SCHEMA作为标准方法,例如
select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
where DELETE_RULE ='CASCADE'
答案 1 :(得分:4)
请使用sys.foreign_keys
获取外键关系。
列 - delete_referential_action
可以帮助您了解级联是否有删除。
http://technet.microsoft.com/en-us/library/ms189807.aspx
以下查看有关类似作品的帮助:
sys.default_constraints for default constraints on columns
sys.check_constraints for check constraints on columns
sys.key_constraints for key constraints (e.g. primary keys)
sys.foreign_keys for foreign key relations
答案 2 :(得分:0)
我发现了如何做到这一点:
我将表格上的FK编写到一个新的查询窗口:
ALTER TABLE [dbo].[myTable] WITH CHECK ADD CONSTRAINT [FK_myTable_myTableHeaders] FOREIGN KEY([ID])
REFERENCES [dbo].[myTableHeaders] ([_ID])
ON DELETE CASCADE
GO
这是我能够确认的。