我在 MS ACCESS 中有一个客户文件,它包含许多表。
案子:
在列(Y)的表(X)中有“= 1或2”的验证规则。如果可能,我想将其更改为“= 1 OR 2 OR 3 OR 4”,它是一个字节列。否则我想完全删除该列的验证规则。我正在使用 C#,我需要一个查询来这样做.......
Access SQL 不能用于添加、删除或更改验证规则。这只能通过 DAO TableDef 来完成。
如果您在 Access 中使用 VBA,您可以这样做来创建您的验证规则。
CurrentDb.TableDefs("X").Fields("Y").ValidationRule = "IN (1,2,3,4)"
我使用IN (1,2,3,4)
而不是1 OR 2 OR 3 OR 4
,但任何一个都应该工作。
也许你可以用Microsoft.Office.Interop.Access
c# 来做同样的事情。
另一种方法是使用 Access SQL 创建检查约束。检查约束与验证规则不同,但可用于实现相同的目标。
ALTER TABLE X ADD CONSTRAINT one_to_four CHECK (Y IN (1,2,3,4));
您仍然需要放弃现有的验证规则。如果这不可行,您可以创建一个与旧表具有相同结构的新表,添加检查约束,最后将数据从旧表加载到新表中。