SQL SERVER 2005中的数据参照完整性

SQL SERVER 2005中的数据参照完整性

左直拳

因为工作的关系,最近用上了SQL SERVER 2005

但为了设置两个表间的数据参照完整性,着实费了一些工夫。变化真是太大了,变得真不敢相信这还是微软的SQL SERVER。以前,有多少人是因为SQL SERVER的简单易用,傻瓜式操作而使用它的呢?也许功能是强大了好多,可也不至于要改得面目全非吧。当初,SQL SERVER2000是多么的好用啊。

2005,设置两个表间的数据参照完整性是这样的:

1、 SQL SERVER MANAGEMENT STUDIO中(企业管理器没有了),选中要添加外键的表,右击,选“修改”。注意要选哪个表。假如表A删了一条记录,表B也要删一条对应的记录,这时候应该在表B上设定关系,A是主表,B是从表;

2、 打开该表后,按照帮助的指示,去找“关系”按扭,没有,找不到,这时要右击,在弹出菜单中选“关系”;

3、 选“表和列规范”,这时右边变魔术般出现了一个按扭,示意可以点击浏览(如果不点呢,对不起,按扭就一直隐藏着,呆上千万年,在漫长的时光流逝中,静静地等待阁下用鼠标去点击那个看起来好象不可编辑的文本行,以图被唤醒而魔术般地出现,给你一个绝对的惊喜——喔,好浪漫哦!)

4、 选好关联表后,回来,打开折叠的“INSERTUPDATE规范”,这时其下有子节点:更新操作,删除操作。删除操作有四个选项:无操作、层叠、设置空,设置默认值。它们是什么意思?谁能告诉我?查帮助,输入“INSERTUPDATE规范”是没有的,输入“层叠”,也是没有的。里面的帮助很有意思,A页面说了没两句,下面就有一个链接,说如果要看更详细的帮助,可以点B页面,然后到了B页面,说了两句,又推荐你回到A页面,跳来跳去,上面的帮助全是狗屁。

以前有个家伙开着直升机迷路了,于是打着一个条幅挂在飞机上,上写:我在哪里?结果一幢大厦里的人看见了,也打出一个条幅,上写:你在飞机上。最后得知,这幢大厦的人是微软公司的帮助文档小组。

帮助没有什么帮助性,在网上寻寻觅觅也没有结果,只好逐个试了。最后发现删除规范里选“层叠”可以实现两个表的数据参照完整性,即两个表的记录一起被删除。开始时选了“设置默认值”,结果只将对应表中的外键值置为NULL

我现在对SQL SERVER2005还很不熟悉,觉得它很难用,怎么看怎么别扭,太复杂了,SQL SERVER2000之前的优点几乎丧失殆尽。查询分析器也没有了。微软好象走进了一个死胡同,做的一切,似乎在自掘坟墓。

个人感觉而已。

1. 在studentdb数据利用查询分析器创建以下3个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): student(学生信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk sno char 5   N 学号   sname char 10   N 姓名   ssex char 2   Y 性别   sage smallint Y 不小于12 年龄 sdept char 15 Y 系名 course(课程表): 主码 列名 数据类型 宽度 小数位 空否 备 注 Pk cno Char 2   N 课程号   cname Char 20   Y 课程名称   cpno Char 2   Y 先行课号   ccredit smallint Y 学分 sc(学生选课表): 主码 列名 数据类型 宽度 小数 空否 外码 参照关系 取值范围 备 注 Pk sno Char 5   N Fk student 学号 cno Char 2   N Fk course 课程号   grade Decimal 5 1 Y 0≤x≤100 成绩 2. 在spjdb数据利用查询分析器创建以下4个表,同时完成数据完整性的定义(实体完整性、参照完整性和用户定义的域完整性): S(供应商信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk sno char 2   N 供应商号   sname char 10   N 供应商名称   status smallint Y 大于0 供应商状态 city char 10 Y 所在城市 P(零件信息表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk pno char 2   N 零件号   pname char 10   N 零件名称 color char 2 Y 颜色   weight smallint Y 大于0 重量 J(工程项目表): 主码 列名 数据类型 宽度 小数位 空否 取值范围 备 注 Pk jno char 2   N 工程项目号   jname char 10   N 工程项目名称 city char 10 Y 所在城市 SPJ(供应情况表): 主码 列名 数据类型 宽度 小数 空否 外码 参照关系 取值范围 备 注 Pk sno Char 2   N Fk S 供应商号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值