Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
-freelancer-
Member

Откуда:
Сообщений: 43
Плз помогите новичку!
Случилось так, что задвоились все строки во всех таблицах в одной из баз, но когда это было обнаружено база была дополнена уже одиночными записями, и теперь надо убрать лишние дубликаты, не удаляя новых строк. Вручную пытался вытереть некоторые - удаляются вместо одной ОБЕ строки т.к. нет уникального ключа. Таблиц около 20ти, никак не найду быстрый и действенный метод. Кто может, подскажите плз.
19 янв 06, 20:41    [2271108]     Ответить | Цитировать Сообщить модератору
 Re: Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
Добавить столбец для идентификации записей, например uniqueidentifier с default newid(), удалить дубликаты, удалить столбец.
19 янв 06, 20:52    [2271118]     Ответить | Цитировать Сообщить модератору
 Re: Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
ну или курсор записям и set rowcount 1 + delete
19 янв 06, 20:53    [2271120]     Ответить | Цитировать Сообщить модератору
 Re: Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
Ray D
Member

Откуда: from the middle of nowhere
Сообщений: 3598
Блог
понесло на ночь глядя :)
select distinct <...> into newtab from oldtab, грохнуть старую, переименовать новую в старую.
19 янв 06, 20:54    [2271122]     Ответить | Цитировать Сообщить модератору
 Re: Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
-freelancer-
Member

Откуда:
Сообщений: 43
Всем спасибо за ответы, Ray D - твоя подсказка ближе всего, так и поступлю... завтра, т.к. из дома уже пишу ;)
Метод с нумерацией столбцов рассматривал, но не оч. удобно чистить будет, т.к. некоторые базы руками не вытрешь, а особо хитрый скрипт написать нет опыта и времени.
А про курсоры мало чего знаю, если раскроете тему, как это будет работать буду признателен.
19 янв 06, 21:56    [2271186]     Ответить | Цитировать Сообщить модератору
 Re: Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
-freelancer-
Member

Откуда:
Сообщений: 43
Упс, сначала написал мессагу, потом тока увидел, что отвечал один человек, Ray D - пасиб огромное за опперативность и разные варианты )))
19 янв 06, 21:58    [2271190]     Ответить | Цитировать Сообщить модератору
 Re: Дубликаты - АБСОЛЮТНО одинаковые+одиночные строки  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
Ray D
понесло на ночь глядя :)
select distinct <...>


ты бы уже остановитлся бы что ли ? :)

delete from tbl where checksum(pole) in (select top 1 checksum(pole) from tbl group by checksum(pole) )

хотя доверие к checksum не очень большое
19 янв 06, 22:01    [2271197]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить