Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Срочно нужен образец триггера .... / 10 сообщений из 10, страница 1 из 1
13.03.2002, 09:41
    #32025058
Shevron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
....проверки на уникальность значений, кроме Null-значений.. плиииз, сам бы написал, так ведь верчусь как белка в колесе не продыхнуть....
...
Рейтинг: 0 / 0
13.03.2002, 12:46
    #32025090
Erika
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
CREATE TRIGGER Equipment_IUTrig ON dbo.Equipment
FOR INSERT, UPDATE
AS
/*
ПРЕДОТВРАЩЕНИЕ ОБНОВЛЕНИЯ ПРИ ДУБЛИРОВАНИИ ЗНАЧЕНИЙ СЕРИЙНОГО НОМЕРА
*/

Set Ansi_Warnings Off
If Exists (Select serial_num From equipment group by serial_num having count(serial_num)>1)
BEGIN
RAISERROR('Попытка дублировать значение серийного номера',16,1)
ROLLBACK TRANSACTION
END
...
Рейтинг: 0 / 0
13.03.2002, 13:48
    #32025107
Shevron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
Изящно, кратко.. СПАСИБО!
...
Рейтинг: 0 / 0
13.03.2002, 15:13
    #32025119
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
Если таблица большая, то этой краткостью лучше пожертвовать - при каждой вставке будет проверяться вся таблица.

чуть исправите:
...
if Exists (Select i.serial_num From equipment e, inserted i where i.serial_num= e.serial_num group by i.serial_num having count(serial_num)>1)
...
...
Рейтинг: 0 / 0
14.03.2002, 02:24
    #32025146
AlexanderVS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
2SergSuper
Скажите пожалуйста, а для чего, в данном случае применен: group by i.serial_num having count(serial_num)>1
...
Рейтинг: 0 / 0
14.03.2002, 06:26
    #32025156
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
а как еще?
и конечно надо писать
group by i.serial_num having count( i. serial_num)>1
...
Рейтинг: 0 / 0
15.03.2002, 02:23
    #32025302
AlexanderVS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
2SergSuper
Эээээ....., я с триггерами почти не работал...... вот чего то и не понимаю, а понять хочется
А можно так написать:
declare @SN varchar(10)
select @SN=
if Exists (Select e.serial_num From equipment e where i.serial_num= e.serial_num group by i.serial_num hav


inserted i
...
Рейтинг: 0 / 0
15.03.2002, 03:29
    #32025304
AlexanderVS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
2SergSuper
Эээээ....., я с триггерами почти не работал...... вот и пытаюсь понять, почему вот такая конструкция
срабатывает всегда, т.е. независимо есть или нет такой же serial_num

if Exists (Select serial_num From equipment where serial_num in (select serial_num from inserted))
...
Рейтинг: 0 / 0
15.03.2002, 03:34
    #32025305
AlexanderVS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
Ой, кажется один лишний - черновик случайно запостил....
Реальный вопрос в предидущем посте.
...
Рейтинг: 0 / 0
15.03.2002, 07:11
    #32025333
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Срочно нужен образец триггера ....
Я не понял фразы "конструкция срабатывает(?) всегда, т.е. независимо есть(?) или нет такой же serial_num"

но вот этот оператор:
if Exists (Select serial_num From equipment where serial_num in (select serial_num from inserted))

если его перевести на русский, будет примерно так: есть в таблице запись, такая же, какую я только что вставил? Естественно она будет

Если еще есть вопросы - спрашивайте по почте
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Срочно нужен образец триггера .... / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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