Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер, запрещающий манипуляции с некоторыми записями / 4 сообщений из 4, страница 1 из 1
28.11.2001, 08:18
    #32017946
Roman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер, запрещающий манипуляции с некоторыми записями
Написал триггер, который должен воспрепятствовать
манипуляциям с записями, если поле Kolvo имеет значение меньше 20.
Однако, где-то тут ошибка. Помогите, пожалуйста.

Create Trigger ProductMoves_Trigger1
On dbo.ProductMoves
For insert, update, delete
As
Declare @Kolvo integer
select @Kolvo = Kolvo from ProductMoves
if @Kolvo < 20
begin
RAISERROR ('Если Kolvo меньше 20, то вставлять, редактировать и удалять запись нельзя', 16, 1)
ROLLBACK TRANSACTION
end
...
Рейтинг: 0 / 0
28.11.2001, 08:33
    #32017947
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер, запрещающий манипуляции с некоторыми записями
Create Trigger ProductMoves_Trigger_IU
On dbo.ProductMoves
For insert, update
As
if exists(select * from inserted where Kolvo < 20)
begin
RAISERROR ('Если Kolvo меньше 20, то вставлять, редактировать и удалять запись нельзя', 16, 1)
ROLLBACK TRANSACTION
end
GO

Create Trigger ProductMoves_Trigger_D
On dbo.ProductMoves
For delete
As
if exists(select * from deleted where Kolvo < 20)
begin
RAISERROR ('Если Kolvo меньше 20, то вставлять, редактировать и удалять запись нельзя', 16, 1)
ROLLBACK TRANSACTION
end
...
Рейтинг: 0 / 0
28.11.2001, 08:39
    #32017948
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер, запрещающий манипуляции с некоторыми записями
Нет, ошибся Надо так (вроде щас правильно...):
Create Trigger ProductMoves_Trigger_I
On dbo.ProductMoves
For insert
As
if exists(select * from inserted where Kolvo < 20)
begin
RAISERROR ('Если Kolvo меньше 20, то вставлять, редактировать и удалять запись нельзя', 16, 1)
ROLLBACK TRANSACTION
end
GO

Create Trigger ProductMoves_Trigger_U
On dbo.ProductMoves
For insert, update
As
if exists(select * from inserted i, deleted d where i.PK = d.PK and ((i.Kolvo < 20) or (i.Kolvo < 20)))
begin
RAISERROR ('Если Kolvo меньше 20, то вставлять, редактировать и удалять запись нельзя', 16, 1)
ROLLBACK TRANSACTION
end
GO

Create Trigger ProductMoves_Trigger_D
On dbo.ProductMoves
For delete
As
if exists(select * from deleted where Kolvo < 20)
begin
RAISERROR ('Если Kolvo меньше 20, то вставлять, редактировать и удалять запись нельзя', 16, 1)
ROLLBACK TRANSACTION
end
GO
...
Рейтинг: 0 / 0
28.11.2001, 08:59
    #32017951
Roman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер, запрещающий манипуляции с некоторыми записями
Спасибо большое, только что и до самого доперло.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер, запрещающий манипуляции с некоторыми записями / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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