SQL2005中 表中两个字段的值不能重复 怎么设 分另加20

在SQL 2005中 表中两个字段的值都不能重复 一个可以设为主键 这样就不允许重复了 可只能设一个主键 联合主键应该不可以吧?

创建唯一约束
创建唯一约束来确保不参与主键的特定列的值不重复。尽管唯一约束和主键都强制唯一性,但在下列情况下,应该为表附加唯一约束以取代主键约束:

如果要对列或列的组合强制唯一性。可以为表附加多个唯一约束,而只能为表附加一个主键约束。

如果要对允许空值的列强制唯一性。可以为允许空值的列附加唯一约束,而只能将主键约束附加到不允许空值的列。当将唯一约束附加到允许空值的列时,确保在约束列中最多有一行含有空值。
创建唯一约束

在数据库关系图中右击将包含约束的表,然后从快捷菜单中选择"属性"命令。
-或-

为将包含约束的表打开表设计器,在表设计器中右击,然后从快捷菜单中选择"属性"命令。

选择"索引/键"选项卡。

选择"新建"命令。系统分配的名称出现在"索引名"框中。

在"列名"下展开列的列表,选择要将约束附加到的列。若要将约束附加到多个列,在后续行中选择其它的列。

选择"创建 UNIQUE"复选框。

选择"约束"选项。
当保存表或关系图时,唯一约束即创建在数据库中。

如果使用的是 SQL Server,可以控制键值的排序次序以及当存在重复键时所采取的操作。为此,应创建唯一索引取代唯一约束。有关更多信息,请参见创建唯一索引。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-04-15
uniqu
第2个回答  2008-04-15
这个最好在程序里面实现,不要在数据库里做
第3个回答  2008-04-15
不行的哈
只能在更新或者添加的时候判断吧

查询两表相同字段但值不重复的记录 SQL2005
可以这样 select * from A where id not in(select id from B);或 select * from A where not exists(select 1 from B where A.id = B.id)

sql的表的两个属性跟同一表的同一属性关联,但取值不能相同,怎么设置
这不会冲突啊,只要将分店表的分店编号设为主键,再将调拨单中的原分店编号和现分店编号分别设置为分店表中分店编号的外键,表示原分店编号和现分店编号都从分店表中分店编号取值不就行了嘛。相关SQL语句如下:ALTER TABLE 调拨单 ADD CONSTRAINT 外键1 FOREIGN KEY (原分店编号)REFERENCES 分店表(分店编...

...一个表里面有多个字段,怎样根据两个不能重复的字段取出全部的字段...
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 example: select distinct * from table(表名) where (条件)2.存在部分字段相同的纪录(有主键id即唯一键)如果是这种情况的话用distinct是过滤不了的,这就要用到主键id的唯一性特点及group by分组 example: select * ...

SQL语句,同一个表中,两个字段相减,应该怎么写?
在Oracle数据库中,如果你需要从同一个表中对两个字段进行加减运算,可以使用SQL的简单算术运算和聚合函数。首先,对于两个字段的简单加减,例如字段A和字段B,可以直接在SELECT语句中进行,如下所示:sql SELECT 字段A, 字段A + 字段B FROM 表名 WHERE 条件; -- 可以根据需要添加WHERE子句 SELECT 字...

两个表中的字段不同 然后进行加减计算 用sql语句怎么写
select cast(a.字段名 as varchar(100))-cast(b.字段名 as varchar(100))- form 表a,表b where a.id=b.id

sql server 有一个字段有重复,另一个字段没有重复,我只想按有重复的取...
就是一种比较有效的方法,还有其他的方法,SQLSERVER2005下 WITH Temp AS (SELECT ROW_NUMBER() OVER(PARTITION BY PartentID ORDER BY @@ROWCOUNT) AS ID, PartentID, Memo FROM TableName)SELECT * FROM Temp WHERE ID = 1 也是一种很好的方法,不过我刚才测试,好像效率稍微不如 DISTINCT,还...

SQL Server2005如何通过SQL语句来改变表的字段进行改动?
字段类型进行修改 alter table tablename alter column columnname datatype 更改表中某个列的名称:exec sp_rename 'tablename.columnname','new columnname','column';添加字段:alter table tablename add 字段 数据类型

请问怎样在SQL2005中实现当一个数据表插入新记录时另一个数据表也跟着...
两种方法:1、两个insert语句,用事务执行,确保同步 2、在作业表增加触发器,当insert时候执行另外表的insert操作 个人建议采用第一种。

sql语句 两个表字段不一致 如何将表2内容insert into表1中
如果是mysql的话可以使用字符串拼接函数concat:insert into tab1 (startdateandtime) select concat(startdate, time) as satartdateandtime from tab2;

在sql2005 中如何将两个表里面的所有的内容重新放在一个新的表中
insert into new_table select * from A union all select * from B ;要求3个表的表结构是一样的

相似回答