如何确定现有Access关系的ON UPDATE / DELETE操作?

时间:2018-04-27 19:51:47

标签: sql ms-access

如何为MS Access中的外键关系约束获取MS UP的ON UPDATE操作和ON DELETE操作?

这是我到目前为止所做的:

SELECT szRelationship as ConstraintName,
szObject as TableName,
szColumn as ColumnName,
szReferencedObject as ParentTableName,
szReferencedColumn as ParentColumnName
FROM MSysRelationships
where szObject not like 'MSys%'

1 个答案:

答案 0 :(得分:2)

参考完整性详细信息似乎在[MSysRelationships]表的[grbit]列中公开:

MSysRelationships.grbit

bit  value  meaning
---  -----  -----------------------------------------------
  0      1  1 = one-to-one relationship (0 = one-to-many)
  1      2  don't enforce Referential Integrity
  8    256  ON UPDATE CASCADE
 12   4096  ON DELETE CASCADE

所以,例如,

  • 与ON UPDATE CASCADE和ON DELETE CASCADE的一对多关系的值为1000100000000 = 4352
  • 与ON UPDATE CASCADE和ON DELETE CASCADE的一对一关系的值为1000100000001 = 4353.