Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Об индексах и поиске и удалении / 2 сообщений из 2, страница 1 из 1
09.02.2002, 12:39
    #32022559
Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об индексах и поиске и удалении
Доброе время суток
У меня есть некоторая довольно быстро наполняемая до 300 записей в день таблица. Она нормализована. Некоторые поля (15-20) заполняются данными (ID) из других таблиц. Вопрос таков мне нужно удалить какой-то элемент классификатора(другая таблица). Как мне проверить нет ли вхождений в главную. Сразу хочу сказать в главной таблице возможно значение поля 0(не связанное с другим ID/ничего не введено).
Как вариант мне кажется: select top 1 from xxx и создать индекс по полям. Но не много ли индексов? Может есть более элегантный способ.
Спасибо за внимание.
...
Рейтинг: 0 / 0
10.02.2002, 08:20
    #32022577
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Об индексах и поиске и удалении
Не понял при чем зачем тут индексы, я сделал бы так:

select count(*)
from главная г
join классификатор1 к1 on г.классификатор1 = к1.Id
where классификатор1.Id = @Чего_хочу_удалить

или сразу:
delete классификатор1
where not exists (select * from главная where классификатор1 = @Чего_хочу_удалить)
and Id = @Чего_хочу_удалить

и еще, попробуйте использовать foreign constraint-ы. Тогда Вы не только не сможете удалить что-либо из классификатора, но и не сможете поместить в "главную" значение, отсутствующее в классификаторе. Для этого Вам, правда, придется либо заменить "значение поля 0(не связанное с другим ID/ничего не введено)" на NULL, либо помещать в классификаторы записи со значениями Id = 0.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Об индексах и поиске и удалении / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]