Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Две одинаковых строки в одной таблице 
:(
    Опции темы
RST8
  Дата 29.10.2005, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 8.12.2004

Репутация: нет
Всего: 1



Я использую БД MS SQL Server 2000. Есть таблица и в ней каким то
образом появились две одинаковые строки. Соответственно информацию
в одной из этих строк изменить нельзя. Пишет "обновление влияет на
много строк" или что то вроде этого.

Как выход я приделал к таблице ключевое поле - счетчик. В первоначальном
варианте ключевых полей в таблице небыло. Для добавления инфы в таблицу
использую хранимые процедуры и транзакции.

Почему такое случается и как этого избежать?
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Alex
Дата 29.10.2005, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 17
Всего: 162



Для начала почитать о методах построения реляционных БД и взять просто за железное правило: любая таблица должна иметь уникальный идентификатор, состоящий не из значимых полей таблицы.

Пример из жизни: Есть у меня таблица товаров, в ней есть поле "артикул" год это поле всегда считали уникальным, в программе выполнялась проверка на его уникальность, но неделю назад по ряду причин было принято решение, что артикул может быть не уникальным. И если бы не железное правило создавать суррогатный уникальный идентификатор и назначать его первичным ключом, то я бы схватился за голову, т.к. в БД более 60 таблиц, таблиц 20 привязаны к этой таблице товаров. А так я зашел и снял ограничение на уникальность поля "артикул"

Что касается, как могло оказаться две одинаковые записи, то тут нужно смотреть более конкретно программу, т.к. если запись такая оказалась только одна, то есть вероятность, что просто пользователь ее дважды добавил


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.