Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Help  [new]
oxotnika
Member [заблокирован]

Откуда:
Сообщений: 22
Есть таблица kot_num1 в ней такие поля Pr1...Pr12(real) и Time_num1(smalldatetime). Как сделать так чтобы в таблице не было одинаковых данных с одинаковой датой в поле Time_num1? Если в таблицу попадают данные с таким же временем которое уже есть, то старые записи надо удалить а новую запись оставить. Надо писать триггер на таблицу?
13 авг 14, 06:14    [16434442]     Ответить | Цитировать Сообщить модератору
 Re: Help  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
oxotnika,

автор
Как сделать так чтобы в таблице не было одинаковых данных с одинаковой датой в поле Time_num1

уникальный индекс

автор
Если в таблицу попадают данные с таким же временем которое уже есть, то старые записи надо удалить а новую запись оставить. Надо писать триггер на таблицу?


Варианты :
Исправить программу, что бы правильно обрабатывала эту ситуацию
13 авг 14, 08:16    [16434545]     Ответить | Цитировать Сообщить модератору
 Re: Help  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
2. Триггер INSTEAD OF INSERT на таблицу
3. И экзотика - VIEW и триггер на нём INSTEAD OF INSERT
13 авг 14, 08:18    [16434548]     Ответить | Цитировать Сообщить модератору
 Re: Help  [new]
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]     Ответить | Цитировать Сообщить модератору
 Re: Help  [new]
mrGuest
Guest
Надо писать триггер на таблицу?


А триггеры - это зло, в руках неумелого разработчика. Старайтесь обходиться без них. Считайте, что это специальный инструмент для великих гуру :)
13 авг 14, 08:40    [16434597]     Ответить | Цитировать Сообщить модератору
 Re: Help  [new]
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 Ответить