从数据库中删除行时,我正在执行查询以避免违反约束。我尽可能使用ON DELETE CASCADE
选项,但有时我不想允许执行删除。
例如:
案子:
- 我有一个带有列 ID 的 DEPT 表
- 我有一个 CUSTOMER 表,其中 DEPTID 列引用了 DEPT 表,没有任何 ON DELETE CASCADE 选项。
- 我有一个 AREA 表,其中包含一个 DEPTID 列,它使用 ON DELETE CASCADE 选项引用了 DEPT 表。
下面的查询将列出引用 DEPT 表的两个表(CUSTOMER 和 AREA):
SELECT *
FROM sys.foreign_key_columns fkc
JOIN sys.columns col ON
fkc.parent_object_id = col.object_id
AND fkc.parent_column_id = col.column_id
WHERE object_name(referenced_object_id) = 'DEPT'
但是我想在我的查询中只显示具有外键而没有选项的ON DELETE CASCADE
表,在上面的示例中只是表 CUSTOMER。
有任何想法吗?