16

有没有办法检查表是否打开了级联删除?我正在查看表的脚本(来自 SQL Server),但没有看到任何级联删除的迹象。

4

3 回答 3

25

您可以将 INFORMATION_SCHEMA 用于标准方法,例如。

select * from INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS 
where DELETE_RULE ='CASCADE'
于 2013-06-08T12:07:09.963 回答
5

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-获取表约束

于 2013-06-07T14:41:48.257 回答
0

我找到了如何做到这一点:

我将表格上的 FK 编写到一个新的查询窗口:

ALTER TABLE [dbo].[myTable]  WITH CHECK ADD  CONSTRAINT [FK_myTable_myTableHeaders] FOREIGN KEY([ID])
REFERENCES [dbo].[myTableHeaders] ([_ID])
ON DELETE CASCADE
GO

这就是我能够确认它的方式。

于 2013-06-07T14:48:53.033 回答