MS-ACCESS:您如何判断约束是否到位?

时间:2014-04-14 15:45:41

标签: ms-access ms-access-2010

我写了一个约束:

ALTER TABLE main
ADD CONSTRAINT pk_main
PRIMARY KEY (x,y,z)

约束似乎有效,因为我没有语法错误或任何其他指示它不起作用,但我没有看到它确实起作用,也不知道如何找到约束。

1)如何判断约束是否成功添加?

2)如果我做错了,如何正确添加约束?

1 个答案:

答案 0 :(得分:2)

CurrentDb.Execute "ALTER TABLE main ADD CONSTRAINT pk_main PRIMARY KEY (x,y,z)"

该语句执行无误。如果我仍然不确定它是否工作",我可以通过添加一个值来复制存储在另一行中的x,y和z值的行进行测试。如果主键约束有效,则重复值将触发错误。

但是在Design View中打开表并查看其索引会更快。 DoCmd.OpenTable "main", acViewDesign ...

Table in Design View displaying indexes

或者,由于主键约束是作为索引实现的,而约束名称是索引名称,因此可以使用DAO检查表的索引。

? CurrentDb.TableDefs("main").Indexes.Count
 1 
? CurrentDb.TableDefs("main").Indexes(0).Name
pk_main
? CurrentDb.TableDefs("main").Indexes(0).Primary
True
? CurrentDb.TableDefs("main").Indexes(0).Fields.Count
 3 
? CurrentDb.TableDefs("main").Indexes(0).Fields(0).Name
x
? CurrentDb.TableDefs("main").Indexes(0).Fields(1).Name
y
? CurrentDb.TableDefs("main").Indexes(0).Fields(2).Name
z

如果您想要另一种方法来检查是否已创建主键约束,请考虑ADO OpenSchema Method。如果您使用Dot.Net和OleDb,它提供了类似的方法。