Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
oxotnika Member [заблокирован] Откуда: Сообщений: 22 |
Есть таблица kot_num1 в ней такие поля Pr1...Pr12(real) и Time_num1(smalldatetime). Как сделать так чтобы в таблице не было одинаковых данных с одинаковой датой в поле Time_num1? Если в таблицу попадают данные с таким же временем которое уже есть, то старые записи надо удалить а новую запись оставить. Надо писать триггер на таблицу? |
13 авг 14, 06:14 [16434442] Ответить | Цитировать Сообщить модератору |
Ken@t Member Откуда: 大地 Сообщений: 3264 |
oxotnika,
уникальный индекс
Варианты : Исправить программу, что бы правильно обрабатывала эту ситуацию |
||||
13 авг 14, 08:16 [16434545] Ответить | Цитировать Сообщить модератору |
Ken@t Member Откуда: 大地 Сообщений: 3264 |
2. Триггер INSTEAD OF INSERT на таблицу 3. И экзотика - VIEW и триггер на нём INSTEAD OF INSERT |
13 авг 14, 08:18 [16434548] Ответить | Цитировать Сообщить модератору |
mrGuest
Guest |
oxotnika, 1. Настроить уникальный индекс на таблицу (для защиты от дурака). 2. В запросах на занесение данных, очевидно, Вам поможет update - если запись с указанной датой уже существует. И insert - если записи еще нет. А уж реализация на Ваше усмотрение, из наиболее очевидных: --вариант 1 merge ... --вариант 2 if exists(select ...) update ... else insert ... --вариант 3 update ... if @@rowcount = 0 insert ... |
13 авг 14, 08:36 [16434586] Ответить | Цитировать Сообщить модератору |
mrGuest
Guest |
А триггеры - это зло, в руках неумелого разработчика. Старайтесь обходиться без них. Считайте, что это специальный инструмент для великих гуру :) |
||
13 авг 14, 08:40 [16434597] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
MERGE тут недавно активно обсуждалось. https://www.sql.ru/forum/1109229/est-li-preimushhestva-merge-pered-insert-update-delete |
13 авг 14, 14:41 [16436819] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |