Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Тригер  [new]
triggesss
Guest
ALTER TRIGGER [dbo].[nn] ON [dbo].[CLIENT]
FOR INSERT
AS 

declare @name varchar(50)
declare @Count int

SELECT @nomer=nomer 
FROM inserted 
		select @Count=COUNT(*) from CLIENT where CLIENT.nomer =@nomer 
				IF @Count > 0
				BEGIN
				ROLLBACK;
					PRINT 'Недопустимый номер'
				END;


Пытаюсь сделать тригер на запрет вставки одинаковых номеров. В итоге номера вообще не добавляются :) помогите
5 мар 12, 22:00    [12199871]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
invm
Member

Откуда: Москва
Сообщений: 9842
1. На момент выполнения триггера, в базовой таблице уже есть добавленные записи, поэтому @Count всегда будет > 0.
2. Таблица inserted может содержать множество строк, поэтому ваш триггер вообще написан неверно.
5 мар 12, 22:32    [12200007]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
triggesss
Пытаюсь сделать тригер на запрет вставки одинаковых номеров. В итоге номера вообще не добавляются :) помогите


лучше юник
6 мар 12, 07:53    [12200534]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
Tohins
Member

Откуда:
Сообщений: 63
Knyazev Alexey,

сделай первое поле с параметром identity, проблема отпадет сама собой. А проверку на одинакового клента cделать перед вставкой
и проверять на @@rowcount.

select * from CLIENT where /......
if @@ROWCOUNT > 0
begin
	RAISERROR ('', 16, 2)
	RETURN
end
6 мар 12, 08:29    [12200596]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Tohins,

IDENTITY гарантирует уникальность, да?
6 мар 12, 09:26    [12200711]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
Tohins
Member

Откуда:
Сообщений: 63
iap,

у клиента могут быть одинаковые данные - аля ФИО, смотря для чего нужно делать уник, для кода клиента или самого клиента...
6 мар 12, 09:51    [12200817]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Tohins
iap,

у клиента могут быть одинаковые данные - аля ФИО, смотря для чего нужно делать уник, для кода клиента или самого клиента...
Это ответ на вопрос про уникальность IDENTITY?
6 мар 12, 10:00    [12200855]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
Я_Гость
Guest
Множественная вставка ??? тогда с таким тригером ничего и не добавится ...
6 мар 12, 12:52    [12202297]     Ответить | Цитировать Сообщить модератору
 Re: Тригер  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
Сказали же уже
ALTER TABLE [dbo].[CLIENT] ADD CONSTRAINT Unique_CLIENT_nomer UNIQUE(nomer);
Триггер не нужен
6 мар 12, 13:11    [12202537]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить