级联删除已开启?

时间:2013-06-07 14:33:23

标签: sql sql-server

有没有办法检查表格是否启用了Cascade Delete?我正在查看表的脚本(来自SQL Server),我没有看到Cascade Delete的任何迹象。

3 个答案:

答案 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

来源:SQL Server 2008- Get table constraints

答案 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

这是我能够确认的。