Как удалить из таблицы 2 одинаковые строки
От: JuraK Россия  
Дата: 09.10.01 05:01
Оценка:
Я работаю с SQL 2000. При создании таблицы я не устанавливаю
в ней никаких ключей для отслеживания целостности и уникальности
данных и не связываю c другими таблицами.
После создания таблицы я ее открываю и начинаю вводить
данные вручную. Если я ввожу две строки, содержащие абсолютно
одинаковые значения, то SQL никак об этот не предупреждает,
но при попытке их удаления выдается сообщение
"Key column information is insufficient or incorrect.
Too many rows were affected by apdate".
После этого ни одну из этих двух строк даже
поредактировать нельзя.

Юрий
Re: Как удалить из таблицы 2 одинаковые строки
От: Lexey Россия  
Дата: 09.10.01 10:45
Оценка:
Здравствуйте JuraK, Вы писали:

JK>Я работаю с SQL 2000. При создании таблицы я не устанавливаю

JK>в ней никаких ключей для отслеживания целостности и уникальности
JK>данных и не связываю c другими таблицами.
JK>После создания таблицы я ее открываю и начинаю вводить
JK>данные вручную. Если я ввожу две строки, содержащие абсолютно
JK>одинаковые значения, то SQL никак об этот не предупреждает,

А что ему предупреждать? Ничего незаконного ты не сделал.

JK>но при попытке их удаления выдается сообщение

JK> "Key column information is insufficient or incorrect.
JK> Too many rows were affected by apdate".
JK>После этого ни одну из этих двух строк даже
JK>поредактировать нельзя.

Просто бедный EM пытается обновить/удалить одну строку (делает он это через SQL-предложения), а вместо этого обновляются/удаляются 2. Он откатывает транзакцию и матерится. И ничего ты с этим не сделаешь. Корректо модифицировать записи в такой ситуации можно только через updatable recordset.

Вывод, либо делай уникальный ключ, либо юзай что-то отличное от EM, использующее рекордсеты.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.