Генерация уникальных ключей из данных с использованием шаблона UPDATE SET FROM - PullRequest
0 голосов
/ 28 декабря 2011

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

Я полагался на то, что «первичные ключи» в данных, которые вводятся, являются уникальными, однако оказывается, что они вовсе не уникальны, например ключ «1» может применяться к «значению A» и «VALUE B», поэтому он, очевидно, не является первичным ключом !!!

Поскольку я больше не доверял данным, я думал о создании своих собственных ключей на основе содержимого промежуточной таблицы. Например. для «столбца A» я хочу создать уникальный целочисленный ключ на основе различных значений в этом столбце. Возможно ли это с помощью ОБНОВЛЕНИЯ НАСТРОЙКИ ОТ или другого механизма?

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Я хочу сгенерировать уникальный целочисленный ключ на основе значения в этом столбце

Вы можете использовать dense_rank() и CTE для нумерации строк.

;with C as
(
  select ID,
         dense_rank() over(order by ColumnA) as rn
  from YourTable
)
update C
set ID = rn

Попробуйте здесь: http://data.stackexchange.com/stackoverflow/q/122782/

1 голос
/ 28 декабря 2011

Из любопытства, почему бы не сгенерировать уникальный ключ на основе номера строки или свернуть свой собственный столбец идентификации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...