データを含むテーブルがあり、一部の列を一意に変更したいのですが、一意である必要がありますが、その列にデータが重複していて、データベースに問題が発生するのではないかと心配しています。
一意のデータを持たない列を一意に変更するとどうなるか知りたいです。いくつかのレコードが失われるか、エラー メッセージが表示されるか、またはその他の何かが発生します。
PS .: SQL Server を使用しています
前もって感謝します。
データを含むテーブルがあり、一部の列を一意に変更したいのですが、一意である必要がありますが、その列にデータが重複していて、データベースに問題が発生するのではないかと心配しています。
一意のデータを持たない列を一意に変更するとどうなるか知りたいです。いくつかのレコードが失われるか、エラー メッセージが表示されるか、またはその他の何かが発生します。
PS .: SQL Server を使用しています
前もって感謝します。
重複データを持つ 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.
データを失うことはありません。
alter table YourTable add constraint UX_YourTable_YourColumn unique(YourColumn)
重複するデータがある場合、 はalter
変更を加えずに中止します。
次のような重複を照会できます。
select YourColumn
, count(*) as DuplicateCount
from YourTable
group by
YourColumn
having count(*) > 1