如何防止SQL Server中的数据重复?

如何防止SQL Server中的数据重复?,sql,sql-server,Sql,Sql Server,假设我在SQL SERVER 2005数据库中有一个如下所示的表: UserId ProductId ProductName 1 2 ABC 1 2 ABC 现在我想应用check,以便不能为同一用户再次输入相同的productId。我还希望sql server强制执行此检查。是否要使用唯一约束 我认为声明主键UserId、ProductId而不是使用check语句可能更自然

假设我在SQL SERVER 2005数据库中有一个如下所示的表:

UserId     ProductId        ProductName
 1         2                ABC
 1         2                ABC
现在我想应用check,以便不能为同一用户再次输入相同的productId。我还希望sql server强制执行此检查。

是否要使用唯一约束


我认为声明主键UserId、ProductId而不是使用check语句可能更自然

你能试试这个吗

在创建新密钥之前,请清除重复项:

请看这里:

完成后,您可以执行以下操作:

ALTER TABLE <tablename> ADD CONSTRAINT pk_UserIdProductId PRIMARY KEY (UserId, ProductId)
当然,如果您刚刚演示了一个示例,并且还没有任何副本,请尝试上面的命令