我有一个包含数据的表,我想将某些列更改为唯一,它必须是唯一的,但我担心该列中存在重复数据,这会给我的数据库带来一些问题。
我想知道如果我将列更改为唯一且没有唯一数据会发生什么,我会丢失一些记录,只是收到错误消息或其他什么?
PS:我正在使用SQL Server
提前致谢。
答案 0 :(得分: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
答案 1 :(得分: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.
所以你可以保持安静,不会丢失任何数据。