假设用户名和电话号码在表定义时应该是唯一的,而不使用sql server中的唯一约束和检查约束。我不想为那个创建sp。请建议任何其他方法来防止sql中的重复列服务器r2 2008. Il
答案 0 :(得分:1)
一种正确的方法(实际上是最好的方法)是使用唯一约束。根据您的描述,尚不清楚您是否需要一个或两个约束。如果您不想要一个独特的约束,您应该解释原因。
也就是说,如果您希望该对是唯一的:
alter table add constraint unq_t_username_phonenumber unique (username, phonenumber);
或者你希望每一个都是独一无二的:
alter table add constraint unq_t_username unique (username);
alter table add constraint unq_t_phonenumber unique (phonenumber);
定义表时,您还可以在线执行单列唯一约束:
create table . . . (
. . .,
UserName varchar(255) not null unique,
. . .
);
几乎等同于唯一约束的是唯一索引:
create unique index unq_t_username on t(username);
不同之处在于您可以命名约束。发生违规时此名称很方便,因为约束名称(但不是索引名称)通常在消息中。