一道选择提,师兄师姐们,帮帮小弟!万分感谢! 主要是说出理由.你的看法

king520520 2008-09-06 10:17:30
假设A表中有主键AP列,B表中有外键AF列,BF引用AP列来实施引用完整性约束,此时如果使用T-SQL,
udpate A set AP='ABC' where AP='EDD'
来更新A表的AP列,可能的运行结果是:

A.肯定会产生更新失败
B.可能会更新A表中的两行数据
C.可能会更新B表中的一行数据
D.可能会更新A表中的一行数据
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
king520520 2008-09-07
  • 打赏
  • 举报
回复
要学术语,这位仁兄,您辛苦了.万分感谢.
-狙击手- 2008-09-06
  • 打赏
  • 举报
回复
D
fcuandy 2008-09-06
  • 打赏
  • 举报
回复
如果是多选题的话,结果应该是 C,D

A,肯定更新失败,这个说的太绝对了。
当 a.ap=edd 的记录,在b表中无相应的引用记录的话,是可以更新A的,所以 A 排除。

B,可能会更新A中两行数据
因为 ap 为主健,主健的概念清楚的话就知道了,即ap值是唯一的,所以B排除.

C,可能会更新B表中的一行数据
因为题没有讲设置主外健关系时是否设置了级联更新即 ON UPDATE CASCADE ,所以如果有这个设置,那么B表中如果有对应的引用记录,确实会更新B表中某一行或多行记录, 如果无这个设置(on update cascade),则不会更新B(在无设置的情况下,b表无对应引用记录),或者报错(在无设置的情况下,B表有对应引用记录)。 因此,这里说可能会更新B表一行数据是成立的

D,在A里已描述,所以入选.

昵称被占用了 2008-09-06
  • 打赏
  • 举报
回复

如果AP='EDD'未在B表引用,更新会成功

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧