Office中国论坛/Access中国论坛

标题: [求助]如何设置SQL SERVER中数据库表的字段,使其既不会重复,又允许留有NULL空值? [打印本页]

作者: 老鬼    时间: 2006-8-8 18:06
标题: [求助]如何设置SQL SERVER中数据库表的字段,使其既不会重复,又允许留有NULL空值?
在已有数据的表中新增了个字段,本来想用设置索引唯一值的方法使其值能唯一,但系统提示该字段不能有NULL空值。请问如何设置SQL SERVER中数据库表的字段,使其既不会重复,又允许留有NULL空值?
作者: wuaza    时间: 2006-8-8 20:47
创建唯一约束。
如果组成 UNIQUE 约束的列或列组合只包含唯一值或 NULL 值,则可向现有表添加 UNIQUE 约束。一个表可含有多个 UNIQUE 约束。
作者: 老鬼    时间: 2006-8-8 21:27
我在“索引/键”的界面设,可是不行啊,提示:

'TblAssignment' 表
- 不能创建索引 'AsmSubAcc'。  
ODBC 错误: [Microsoft][ODBC SQL Server Driver][SQL Server]CREATE UNIQUE INDEX 终止,因为发现了索引 ID 7 的重复键。最重要的主键为 '<NULL>'。
[Microsoft][ODBC SQL Server Driver][SQL Server]未能创建约束。请参阅前面的错误信息。
[Microsoft][ODBC SQL Server Driver][SQL Server]语句已终止。

这个提示什么意思,我没有要建索引啊。你说的约束是不是指CHECKED约束啊,那个怎么设?
作者: wuaza    时间: 2006-8-8 23:39
如果你有多个空值的话,告诉你,没有现成的约束可用。
作者: 老鬼    时间: 2006-8-10 02:28
那如果表中原来没有数据,创建了“唯一约束”后,该列保留多个NULL值,可不可以?主要是因为原来在ACCESS中可以,但转到SQL SERVER中就不行了,原来的设计都不知道怎么改才能和原来的一样。
作者: wuaza    时间: 2006-8-10 05:36
不可以。最多允许一个null。
一定要实现的话只能用触发器等方法,但很麻烦。
作者: 老鬼    时间: 2006-8-10 16:00
这样只好再加深学习了。THANKS!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3