0

我有一个包含数据的表,我想将某些列更改为唯一的,它必须是唯一的,但我担心该列中有重复的数据,这会给我的数据库带来一些问题。

我想知道如果我将一列更改为没有唯一数据的唯一列会发生什么,我会丢失一些记录,只是收到一条错误消息,或者其他什么?

PS.:我正在使用 SQL Server

提前致谢。

4

2 回答 2

0

您将无法在具有重复数据的 COLUMN 上添加 UNIQUE 约束。

在 SSMS 中,错误消息是这样的

The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name 'dbo.<Table>' and the index name '<constraintname>'. The duplicate key value is (<NULL>).


Could not create constraint. See previous errors.

因此,您可以保持安静,不会丢失任何数据。

于 2013-08-23T12:40:20.657 回答
0
alter table YourTable add constraint UX_YourTable_YourColumn unique(YourColumn)

如果有重复数据,alter将中止而不做任何更改。

您可以查询重复项,例如:

select  YourColumn
,       count(*) as DuplicateCount
from    YourTable
group by
        YourColumn
having  count(*) > 1
于 2013-08-23T12:38:49.100 回答