Как заполнить пустые столбцы уникальными значениями в SQL Server? - PullRequest
5 голосов
/ 06 января 2012

У меня есть таблица, в которой есть строка, содержащая электронные письма пользователя, и я хочу добавить ограничение, чтобы сделать эту строку уникальной.Проблема в том, что есть некоторые (около 200) столбцов с пустыми значениями.

Мне нужно сгенерировать фиктивные значения и вставить их в пустые столбцы.

Как я могу это сделать?

Спасибо

Ответы [ 2 ]

8 голосов
/ 06 января 2012

Описание

Вы можете использовать функцию T-SQL newid()

newid () Создает уникальное значение типа uniqueidentifier.

Пример

UPDATE MyTable set Column = newid() where Column is null

Дополнительная информация

5 голосов
/ 06 января 2012

Если вы используете SQL Server 2008 - рассмотрите уникальный индекс по электронной почте, который отфильтровывает нулевые значения, что-то вроде этого:

CREATE UNIQUE INDEX [UX.Email, not null] on dbo.YourTable(email)
WHERE email is not null

OR

Для версий SQL Server до 2008 года вы можете использовать значение идентификатора строки первичного ключа, если у вас есть один

update yourtable set email = id where email is null

Если у вас нет такой клавиши, по крайней мере, вы можете использовать функцию NEWID () вместо id

...