标题:[分享][经验]我的一点小小经验,不要见笑,呵呵
只看楼主
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
结帖率:40%
 问题点数:0 回复次数:4 
[分享][经验]我的一点小小经验,不要见笑,呵呵

这个问题书中也说了不少,但在编写图书管理系统的时候遇上了,弄了半天,原来这么回事,但愿对大家有帮助,呵呵
当两张数据库中的表有内容时,这时我们向其中一张表添加外键(引用另外一张表的主键),却报错说Alter语句与外键冲突,这是因为当添加外键时要检验数据的合法性,很明显这是因为数据的不合法,这时可以加上with nocheck
如:Alter table BS With nocheck Add constraint FK_BS_Students foreign key(SID) references Students(SID)
Alter table BS check constraint FK_BS_Students
又如:当我们创建了一张表Create Table mytab(col_a int)
插入一行数据insert into mytab(-1)
添加约束Alter table mytab Add constraint CK_mytab_col_a Check(col_a>0)
很明显这里的alter table语句不能执行,因为在真正加入约束之前,要检验数据的合法性,显然-1与check(col_a>0)矛盾
所以应该修改为这样:Alter table mytab with nocheck Add constraint CK_mytab_col_a Check(col_a>0)(注意这里是with nocheck而不是nocheck)
如果恢复检查功能:Alter table mytab check constraint CK_mytab_col_a(注意这里是check,而不是with check)

搜索更多相关主题的帖子: 数据库 constraint 经验 见笑 Alter 
2006-12-25 22:18
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
得分:0 
哦,下次注意好了

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-26 08:53
chenxkfox
Rank: 1
等 级:新手上路
威 望:1
帖 子:123
专家分:0
注 册:2005-8-18
得分:0 

受教


,SQL SERVER 群号:17280478
2006-12-26 11:41
lengxie
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-10-27
得分:0 
学习了
2006-12-26 16:58
zjh_0001
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-12-27
得分:0 

受教了,

2006-12-27 11:57



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-112090-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.558226 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved