| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 830 人关注过本帖
标题:[分享][经验]我的一点小小经验,不要见笑,呵呵
取消只看楼主 加入收藏
ninggang
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:637
专家分:0
注 册:2006-11-1
结帖率:40%
收藏
 问题点数:0 回复次数:0 
[分享][经验]我的一点小小经验,不要见笑,呵呵

这个问题书中也说了不少,但在编写图书管理系统的时候遇上了,弄了半天,原来这么回事,但愿对大家有帮助,呵呵
当两张数据库中的表有内容时,这时我们向其中一张表添加外键(引用另外一张表的主键),却报错说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
快速回复:[分享][经验]我的一点小小经验,不要见笑,呵呵
数据加载中...
 
   



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

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