sql server建表时不知道要怎么设置条件

我最近刚学了sql server,想建立一个表,代码如下:
CREATE TABLE 中国居民身份信息表 (
姓名 varchar(50) NOT NULL ,
性别 varchar(5) CHECK(性别='男' OR 性别='女') NOT NULL,
身份证 varchar(18) CHECK (LEN(身份证) IN (18)) PRIMARY KEY,
出生年月 varchar(8) CHECK(出生年月=SUBSTRING('身份证',6,8))NOT NULL,
年龄 int CHECK(年龄=2017-CONVERT(INT,SUBSTRING('身份证',6,4))and 年龄<=150 and 年龄>0)
);
一开始我想让出身年月和年龄根据我输入的身份证字符自动生成,用的是DEFAULT约束,不过不行,后来想让这两个字段要符合上面的规则,不过不知道怎么写,在网上找了很久还是找不到,希望有知道的朋友告诉我在建表的过程中能不能实现这些要求,谢谢!

慕哥4957459
浏览 1477回答 1
1回答

HalfAnHour

这些东西都是代码上来实现的,跟你的表没关系。比如你的身份证,老版的身份证貌似15位数,新版的才18位,你不能在数据库就限制必须18位,出生年月的话最好存入时间戳,这样方便计算。假如人家进来不填写性别,你怎么办?默认设置男?所以可以用数字代替0男1女2保密。当然我上面的全是我个人的想法。拙见
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server