我不知道出了什么问题但是我的约束条款没有用
ALTER TABLE Employee
ADD CONSTRAINT CheckSalary CHECK (Salary > 0);
//entitesin my table
EMPID
EMPNAME
EMPDOB
EMPRGENDER
EMPCONTACT
EMPADDRESS
EMPSSN
EMPSTATUS
EMPLOYMENTID
EMPEMAIL
SALARY
任何帮助将不胜感激
答案 0 :(得分:2)
从ADO执行时,Access DDL仅支持检查约束。
这是一个立即窗口示例...
strSql = "ALTER TABLE Employee " & vbCrLf & _
"ADD CONSTRAINT CheckSalary CHECK (Salary > 0);"
? strSql
ALTER TABLE Employee
ADD CONSTRAINT CheckSalary CHECK (Salary > 0);
' CurrentDb is a DAO object, so this will throw
' error 3289, "Syntax error in CONSTRAINT clause."
CurrentDb.Execute strSql
' CurrentProject.Connection is an ADO object,
' so this works ...
CurrentProject.Connection.Execute strSql
注意,如果您尝试从查询设计器执行该语句,它也会失败,因为查询设计器使用DAO。
因此,如果需要,可以设置CHECK
约束,但为Salary
设置验证规则可能会更容易。无论哪种方式,您可能还希望禁止Salary
中的Null。
答案 1 :(得分:0)
MS-Access不支持CHECK
约束,而是使用它所谓的“验证规则”。
有关详细信息,请参阅MSDN。