书上的要求是创建表并同时创建以下约束
1,设置学号为主键,主键名为pk_sid
2,为姓名添加唯一约束(unique),约束名为uk_name
3,为性别添加默认约束(default),名为df_sex,值为'男'
4,为出生日期添加check,约束名为ck_bday,检查条件为'出生日期>'1988-1-1''
以下是我写入的代码
create table stu_con
(
学号 char(4)primary key,
姓名 char(8)unique,
性别 char(2),
default '男',
出生日期 datetime check(ck_bday(year,出生日期,getdate())>'1988-1-1'),)
不知道怎么为约束创建名称,也不知道为什么会出现下列提示:
服务器: 消息 195,级别 15,状态 10,行 6 'ck_bday' 不是可以识别的 函数名。
关于create table创建表时添加约束,麻烦看下我的应该怎么改
答案:2 悬赏:0 手机版
解决时间 2021-03-24 06:42
- 提问者网友:轻浮
- 2021-03-24 00:21
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-03-24 01:05
出生日期 datetime check(ck_bday(year,出生日期,getdate())>'1988-1-1'),)
按你的格式创建的check约束是系统命名的、而且你写的不对
系统命名:出生日期 datetime check(出生日期>'1988-1-1'))
detetime的格式直接就可以拿来比较了、不需要用函数、如果你想用函数取年份用
datediff(year,出生日期,getdate()),后面的1988-1-1改为1988
自己命名(按你题目要求):
create table stu_con
(
学号 char(4)primary key,
姓名 char(8)unique,
性别 char(2),
default '男',
出生日期 datetime,constraint ck_bday check (出生日期>'1988-1-1') )
还有一种方法是建表以后添加check约束,但是不符合你题目。
格式:alter table stu_con
add constraint ck_bday check (出生日期>'1988-1-1')
按你的格式创建的check约束是系统命名的、而且你写的不对
系统命名:出生日期 datetime check(出生日期>'1988-1-1'))
detetime的格式直接就可以拿来比较了、不需要用函数、如果你想用函数取年份用
datediff(year,出生日期,getdate()),后面的1988-1-1改为1988
自己命名(按你题目要求):
create table stu_con
(
学号 char(4)primary key,
姓名 char(8)unique,
性别 char(2),
default '男',
出生日期 datetime,constraint ck_bday check (出生日期>'1988-1-1') )
还有一种方法是建表以后添加check约束,但是不符合你题目。
格式:alter table stu_con
add constraint ck_bday check (出生日期>'1988-1-1')
全部回答
- 1楼网友:西风乍起
- 2021-03-24 01:47
知道,但是我看已经有人回答了,我就算了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯