Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уникальные поля / 4 сообщений из 4, страница 1 из 1
20.02.2002, 05:08
    #32023451
Denis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальные поля
Всем привет!
Вот какая проблема. Есть таблица с полями d_act(datetime) и nom_act(char(10)). Нужно создать уникальность совокупности этих полей по такому условию: в течении одного календарного года nom_act уникален. У меня напрашивается только такое решение: создать еще одно поле act_year(integer), которое будет заполняться по формуле: year(d_act). И теперь добавить constraint uq_act unique nonclustered(nom_act, act_year). Но мне самому не очень это решение по душе. Может кто-то более красивое решение подскажет?
...
Рейтинг: 0 / 0
20.02.2002, 06:09
    #32023458
MadDog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальные поля
Триггер.
В sql2k можно пользовательскую функцию привязать к check constraint.
...
Рейтинг: 0 / 0
20.02.2002, 06:40
    #32023462
Владимир Смирнов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Уникальные поля
Ещё вариант - триггер на вставку, изменение.
Правда, нужно проверить наличие/отсутствие дублирования номера для каждой записи (т.е. проверить наличие записей из inserted и таблицы, объединённых по номеру и году, для которых count > 1 ), а это существенно медленнее, чем для unique.
...
Рейтинг: 0 / 0
20.02.2002, 06:46
    #32023463
Уникальные поля
А ещё можно задействовать новую в sql2000 фичку - навесить уникальный индекс на вычисляемое поле.
Хотя мне больше по душе решение от MadDog.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Уникальные поля / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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