![]() |
|
![]() ![]() ![]() |
|
RST8 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 232 Регистрация: 8.12.2004 Репутация: нет Всего: 1 |
Я использую БД MS SQL Server 2000. Есть таблица и в ней каким то
образом появились две одинаковые строки. Соответственно информацию в одной из этих строк изменить нельзя. Пишет "обновление влияет на много строк" или что то вроде этого. Как выход я приделал к таблице ключевое поле - счетчик. В первоначальном варианте ключевых полей в таблице небыло. Для добавления инфы в таблицу использую хранимые процедуры и транзакции. Почему такое случается и как этого избежать? --------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной! |
|||
|
||||
Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 17 Всего: 162 |
Для начала почитать о методах построения реляционных БД и взять просто за железное правило: любая таблица должна иметь уникальный идентификатор, состоящий не из значимых полей таблицы.
Пример из жизни: Есть у меня таблица товаров, в ней есть поле "артикул" год это поле всегда считали уникальным, в программе выполнялась проверка на его уникальность, но неделю назад по ряду причин было принято решение, что артикул может быть не уникальным. И если бы не железное правило создавать суррогатный уникальный идентификатор и назначать его первичным ключом, то я бы схватился за голову, т.к. в БД более 60 таблиц, таблиц 20 привязаны к этой таблице товаров. А так я зашел и снял ограничение на уникальность поля "артикул" Что касается, как могло оказаться две одинаковые записи, то тут нужно смотреть более конкретно программу, т.к. если запись такая оказалась только одна, то есть вероятность, что просто пользователь ее дважды добавил -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |