Я хотел был бы скопировать строки в моей таблице в ту же таблицу, но изменить уникальные значения (так что я не получаю дубликаты уникальных). Использование MS SQL Server 2008Выбор и вставка (копирование строк с частично уникальными значениями)
Таблица Пример
ID NAME POS TYPE DATA
XXXXXXXXXXXXXXX_TTTT Something Hefty 0 01DAT 2008-09-29
XXXXXXXXXXXXXXX_WWWW Something Hefty 2 01RAT Random txt
ZZZZZZZZZZZZZZZ_YYYY Something Else 1 01DAF Random value
Ни один из столбцов не имеют каких-либо клавиш и все столбцы имеют тип данных Varchar.
Теперь, что я хочу сделать, это выбрать те строки и вставить их (например, скопировать вставку ish), но я хочу сохранить _YYYY, _TTTT и _WWWW (они являются заменами и уникальны для каждого X или Z ID - это означает, что _TTTT может быть таким же, как _YYYY, так как X и Z являются разными) в столбце идентификатора, но вносят новую часть XXXXXXXXXXXXXXX и ZZZZZZZZZZZZZZ идентификатора. Также я хочу изменить ИМЯ, так как он должен быть уникальным с идентификатором XXXXXXXXXXXX или ZZZZZZZZZZZZZZ. (The X ID имеет одно имя и Z ID имеет другой.)
Вот заявление, я пытаюсь использовать (неполному его, так как я не могу понять его укомплектовать из)
insert into Table_name(ID,NAME,POS,TYPE,DATA)
select 'XXXXXXXXXXXXXXX'+substring(ID,15,5), NAME+'(Copy)',POS,TYPE,DATA
from Table_name where NAME='Old name' or NAME='Old name 2'
«Старому имя» и «Старое имя 2» - это возможность выбрать, какое имя я хочу скопировать (в большинстве случаев более 5).
Таким образом, мне нужна помощь в создании новых уникальных идентификаторов XXXXXXXXXXXXXXX и ZZZZZZZZZZZZZZ для каждого имени.
Можете ли вы опубликовать ожидаемый результат? –
Можете ли вы изменить дизайн стола? Если да, разделите идентификатор таблицы на две колонки. Из вашего описания мне кажется, что таблица не полностью нормализована. Если нет, вы можете использовать GUID с 'newid()' для первой части идентификатора – Claude