Как я могу удалить повторяющиеся строки в таблице - PullRequest
14 голосов
/ 18 сентября 2008

У меня есть таблица, скажем, 3 столбца. Там нет первичного ключа, поэтому могут быть повторяющиеся строки. Мне нужно просто оставить один и удалить остальные. Любая идея, как это сделать Sql Server?

Ответы [ 13 ]

0 голосов
/ 18 сентября 2008

Можете ли вы добавить поле идентификатора первичного ключа в таблицу?

0 голосов
/ 18 сентября 2008

Я не уверен, работает ли это с операторами DELETE, но это способ найти повторяющиеся строки:

 SELECT *
 FROM myTable t1, myTable t2
 WHERE t1.field = t2.field AND t1.id > t2.id

Я не уверен, что вы можете просто изменить «ВЫБОР» на «УДАЛИТЬ» (кто-то хочет, чтобы я знал?) , но даже если вы не можете, вы можете просто сделать это в подзапрос.

0 голосов
/ 18 сентября 2008

После очистки текущего беспорядка вы можете добавить первичный ключ, который включает все поля в таблице. это не позволит вам снова попасть в беспорядок. Конечно, это решение вполне может сломать существующий код. Это тоже нужно будет обработать.

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