现创建如下的表
create table table_A(
id int not null,
name1 varchar(30) not null,
name2 varchar(30)) not null,
constraint PK_table_A primary key nonclustered (id)
)
我想让name1,name2是唯一的,而且是与列的顺序无关,例如
当执行如下两条语句时
insert into A values(100,2,3)
insert into A values(101,3,2)
我期望达到的效果是,执行第二条语句时,会报错,提示违反唯一约束请问我该怎么做呢PS:当我加入ALTER TABLE table_A
ADD CONSTRAINT table_A_Name UNIQUE (name1,name2)
语句后,无法达到期望的效果
create table table_A(
id int not null,
name1 varchar(30) not null,
name2 varchar(30)) not null,
constraint PK_table_A primary key nonclustered (id)
)
我想让name1,name2是唯一的,而且是与列的顺序无关,例如
当执行如下两条语句时
insert into A values(100,2,3)
insert into A values(101,3,2)
我期望达到的效果是,执行第二条语句时,会报错,提示违反唯一约束请问我该怎么做呢PS:当我加入ALTER TABLE table_A
ADD CONSTRAINT table_A_Name UNIQUE (name1,name2)
语句后,无法达到期望的效果
解决方案 »
- 再问编号问题
- 进销存的库存查询怎么写比较好?
- 如何新建作业?
- 两张表:table1(ID0,ID1),table2(ID1,ID0),table1的ID1外键约束于table2,table2的ID0约束于table1,怎么插入数据??
- 有没有谁知道写一个规则让分布试的SQL像在一台服务器上一样调用.
- 在局域网里连接其它SQL服务器,建立连接时,时间过长???
- 怎么取今天到月底之间的数据?今天日期不确定?sql语句
- 请教一个SQLServer2000查询
- declare a @Text as Text,how to Use ReadText Read TextType into @Text & Return
- 在DB2中创建存储过程出现的问题????
- 发生错误5 - (拒绝访问。),此时正在MSSQLServer服务上执行该服务操作
- windows xp 下sql 2000 做分布式数据更新
ADD CONSTRAINT table_A_Name UNIQUE name1ALTER TABLE table_A
ADD CONSTRAINT table_A_Name UNIQUE name2
create table table_A(
id int not null,
name1 varchar(30) not null unique,
name2 varchar(30)) not null unique,
constraint PK_table_A primary key nonclustered (id)
)
insert into A values(100,2,3)
insert into A values(101,3,2)
两条语句后,还是不会报错我想要唯一的集合,而默认建立的唯一约束是序列,跟列的顺序有关
insert into A values(100,2,3)
insert into A values(101,3,2)
会报错,而执行
insert into A values(100,2,3)
insert into A values(101,2,4)
不会报错
分别建立唯一约束,会使得执行
insert into A values(100,2,3)
insert into A values(101,2,4)
都会报错
ADD CONSTRAINT table_A_Name UNIQUE (name1,name2)
后再创一个触发器,功能是当name1=inserted.name2 and name2=inserted.name1时回滚,否则正常插入