请问在SQL SERVER中,在Design一个表的时候,建立一个Relationship有什么用?

kevindude 2003-04-16 07:57:11
如题,本人新手,请教高手!
...全文
86 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevindude 2003-04-16
  • 打赏
  • 举报
回复
多谢各位!谁能再解释一下,在建立Relationship的时候,底下的几个复选框都什么意思啊?
Check existing data on creation
Enforce relationship for replication
Enforce relationship for INSERTs and Update
Cascade Update Related Fields
Cascade Delete Related Records
zhaolingsy 2003-04-16
  • 打赏
  • 举报
回复
条理性也有好处呀
zhaolingsy 2003-04-16
  • 打赏
  • 举报
回复
显而易见,维护数据的安全性有很大的好处!
zhaolingsy 2003-04-16
  • 打赏
  • 举报
回复
防止在一个从表中插入的数据,而主表中没有,此时就不能插入进去了,或删除主表中数据,此时从表也有该数据,此时就不能删除了。
pengdali 2003-04-16
  • 打赏
  • 举报
回复
是为了约束如:

Create database cat
go
use cat
go
CREATE TABLE s(s# int not null primary key,s_name varchar(8) not null)
go
CREATE TABLE c (c# int not null primary key,c_name varchar(8) not null)
go
CREATE TABLE cs(c# int not null,s# int not null,cj tinyint not null default(0),
primary key (c#,s#),foreign key(s#) references s(s#),foreign key(c#) references c(c#))
go

你在没有向s表或c表插入数据的时候,向cs表插入会报错的!
pengdali 2003-04-16
  • 打赏
  • 举报
回复
连关系都不知道吗?买本数据库书看看吧!


declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)

--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@b

22,209

社区成员

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

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