Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер проверяющий наличие записи на основе COUNT(*) / 6 сообщений из 6, страница 1 из 1
05.10.2002, 16:46:25
    #32055735
netfrog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер проверяющий наличие записи на основе COUNT(*)
простейший триггер цель которого не дать вставить в справочник повторяющееся значение:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TRIGGER tri_Ins_Strah
ON tblStrah

FOR INSERT
AS
	IF (SELECT COUNT (*)  FROM tblStrah as a, inserted as b  WHERE a.textStrah=b.textStrah) >  0 
	BEGIN
		ROLLBACK TRAN
		RAISERROR ('error',  16 ,  10 )
	END

но если поставить >1 то все ОК, объясните плз?
...
Рейтинг: 0 / 0
05.10.2002, 16:59:40
    #32055736
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер проверяющий наличие записи на основе COUNT(*)
Ну записи-то вроде по одной вставляются?
Если вставить одну повторяющуюся запись,
то >1 ессно не выполнится...
...
Рейтинг: 0 / 0
05.10.2002, 17:41:09
    #32055738
netfrog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер проверяющий наличие записи на основе COUNT(*)
sorry, не понял, мне нужно проверять наличие аналогичной записи, QA говорит что записи нет а триггер, что есть??? Или как понимать положительный рекордкаунт?
...
Рейтинг: 0 / 0
06.10.2002, 13:43:55
    #32055771
netfrog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер проверяющий наличие записи на основе COUNT(*)
Извиняюсь за тупость, нечего весь день за компом сидеть. только сейчас сообразил, что данные сначала вставились, потом пошла проверка триггером (он же "постфильтр"). Спасибо AlexJuice.
...
Рейтинг: 0 / 0
06.10.2002, 19:05:59
    #32055790
Nickolay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер проверяющий наличие записи на основе COUNT(*)
2netfrog: Может быть вопрос совсем не в тему, но все-таки... Почему такая экзотическая реализация, не проще-ли объявить поле уникальным?
...
Рейтинг: 0 / 0
07.10.2002, 09:42:07
    #32055834
Deosfen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер проверяющий наличие записи на основе COUNT(*)
вместо IF (SELECT COUNT (*) FROM tblStrah as a, inserted as b WHERE a.textStrah=b.textStrah) > 0
BEGIN
....

используй
if exists(select * from tblStrah as a, inserted as b WHERE a.textStrah=b.textStrah)
BEGIN
....

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


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