在ms access 2016中,我如何改变一个表来增加一列一个带有检查约束的int列的int字段?

问题描述 投票:1回答:1

我想改变我的客人表,添加一个年龄限制为18岁的列。我已经尝试了以下方法。

ALTER TABLE GUEST
ADD COLUMN age int CHECK (>=18) 
ms-access-2016
1个回答
0
投票

你可以执行2条语句来添加列,然后再执行 CHECK 约束,就像在这个测试过的Access 2010样本中一样......。

Dim strSql As String
strSql = "ALTER TABLE [GUEST] ADD COLUMN age int;"
CurrentProject.Connection.Execute strSql
strSql = "ALTER TABLE [GUEST] ADD CONSTRAINT CheckAge CHECK (age >= 18);"
CurrentProject.Connection.Execute strSql

注意添加一个 CHECK 约束必须使用ADO(ActiveX Data Objects)或其他基于OleDb的方法来完成。 那 ADD CONSTRAINT 如果使用DAO(数据访问对象)方法,上述语句将失败。

CurrentProject.Connection 是成功的,因为那是一个ADO对象,并且利用了OleDb ...。

? CurrentProject.Connection.Provider
Microsoft.ACE.OLEDB.12.0

最后,虽然 CHECK 约束方法可以工作,其他读者可能会发现一个新的方法。验证规则 以便更方便地指定该>=18数据要求。

© www.soinside.com 2019 - 2024. All rights reserved.