创建表格时如何为age < 40 from birthdate
设置检查约束?
类似的东西:
SELECT DATEDIFF(yy,” Birthdate ”, getdate()) as age
age<40
那么在创建表格和计算属性,对其进行分组并检查它是否&gt;时,我怎么能有另一个检查约束? 6?
如下面但作为检查约束?
select count(attributex) as counter from entityx
group by attributex
having counter>6
答案 0 :(得分:0)
创建表时检查约束: http://www.w3schools.com/sql/sql_check.asp
对于第二个问题,我猜你想要设置一个检查约束,这将限制为条件(年龄> 6和年龄<40)插入的行数。为此,检查最大限制而不是最小限制更有意义,如下例所示:
CREATE TABLE EnitityX
(
Age int NOT NULL,
RecordId int NOT NULL AUTO_INCREMENT,
CHECK (Age>6),
CHECK (Age<40),
CHECK (RecordId<6)
)
答案 1 :(得分:0)
create table person (Birthdate date check (DATEDIFF(year,Birthdate,getdate()) < 40))
insert into person (Birthdate) values ('1990-01-01');
(1行受影响)
insert into person (Birthdate) values ('1970-01-01');
Msg 547,Level 16,State 0,Line 7
INSERT语句与CHECK约束“CK__person__Birthdat__30F848ED”冲突。冲突发生在数据库“dmarkovitz”,表“dbo.person”,列'Birthdate'。