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

Откуда:
Сообщений: 34
Я делаю
CREATE TRIGGER SCSOnIns
FOR INSERT,UPDATE
AS
if (select count(*) from sprcs as s, Inserted as i WHERE s.ocs=i.ocs)>0
begin
ROLLBACK TRAN
RAISEERROR('blablabla',16,10)
end
структура SprCS (id int identity, ocs varchar(4) not null, comment varchar(40) null)
почему этот тригер не работает если таблица пустая то есть вводим первую строку
может set какой поставить?
21 ноя 03, 05:19    [427468]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по triggeram  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Попробуй после AS поставить
SET NOCOUNT ON
Хотя...

Что конкретно должен сделать триггер?
21 ноя 03, 06:30    [427480]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по triggeram  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор писал:
почему этот тригер не работает если таблица пустая то есть вводим первую строку


А что он должен делать?
21 ноя 03, 09:18    [427589]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по triggeram  [new]
lvv
Member

Откуда:
Сообщений: 226
Так он и не должен работать, count при insert вернет 1, что по логике вашего триггера ошибка
21 ноя 03, 09:21    [427599]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по triggeram  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Так мы от повторов что-ли избавляемся? Тогда >1. И без триггера такие вещи можно делать. Уникальное ограничение на поле повесь.
21 ноя 03, 09:25    [427607]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по triggeram  [new]
UlArt
Member

Откуда:
Сообщений: 34
Да пытаюсь от дубликатов избавиться
а как CHECK сделать если на этой таблице
поле idcs это PRIMARY KEY (IDENTITY) он же вроде не даст построить уникальный индекс
21 ноя 03, 10:04    [427693]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по triggeram  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
WHERE s.ocs=i.ocs

Ты же по полю osc уникальность проверяешь? ВОт и повесь на него UNIQUE CONSTRAINT.
21 ноя 03, 10:14    [427723]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить