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

Откуда:
Сообщений: 13
Добрый вечер!
[/SRC]create trigger Объект_недвижимости_1 on Объект_недвижимости
for insert
as Begin
if @@RowCount=0
Return
If @@RowCount>1
Begin
Raiserror ('Нельзя больше 1 записи', 16, 1)
RollBack Tran
Return
End
declare @kol_pod int, @Код_сотрудника char , @Номер_объекта char
select @kol_pod=count(Номер_объекта)
from Объект_недвижимости
where Код_сотрудника=@Код_сотрудника

if (@kol_pod>10)
Begin
Raiserror ('Нельзя уследить за более 10 объектами ', 16, 1)
RollBack Tran
Return
End
end[SRC sql]

Нужно реализовать бизнес-правило,что сотрудник не может следить за более чем 10-ю объектами. Почему он не выполняет условие? я ввожу более 10 записей и ничего.
12 июн 13, 22:03    [14425557]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Аброний,

И чему по вашему у вас равен @Код_сотрудника ?
12 июн 13, 22:16    [14425606]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Use the inserted and deleted Tables
12 июн 13, 22:17    [14425611]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
C @@rowcount чушь написана.

Сообщение было отредактировано: 12 июн 13, 22:24
12 июн 13, 22:24    [14425618]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Триггер фтопку, CHECK ограничение на агрегирующий индекс.
12 июн 13, 23:58    [14425823]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Триггер фтопку, CHECK ограничение на агрегирующий индекс.
Но я согласен, что на 10 локировках не сэкономишь и скорее всего индекс на [Код_сотрудника] уже есть.
Так что это просто будет кушать место, но если где ещё используется агрегатка (или нет индекса), то самое оно.
13 июн 13, 00:09    [14425841]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Гавриленко Сергей Алексеевич
C @@rowcount чушь написана.
Даже если написать правильно,
@@ROWCOUNT мешает использовать таблицу в MERGE
13 июн 13, 10:07    [14426532]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iap
@@ROWCOUNT
Дело не в @@ROWCOUNT, а в смысле ограничения "Нельзя больше 1 записи"
Это не бизнес ограничение, а кривые руки и голова.
13 июн 13, 11:24    [14427031]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на подсчет записей  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Mnior
iap
@@ROWCOUNT
Дело не в @@ROWCOUNT, а в смысле ограничения "Нельзя больше 1 записи"
Это не бизнес ограничение, а кривые руки и голова.
Ну, хотя бы это проверяется и отрабатывается!
Обычно ведь мы тут видим ещё интереснее ситуации,
когда считают, будто запись одна, и не заморачиваются.
13 июн 13, 11:35    [14427112]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить