C
Cristi-a-n
Здравствуйте. Нужно создать три триггера: на insert, delete, update так, чтобы при изменении таблицы вручную, триггер срабатывал и выполнял изменения и в другой таблице.
Триггер на insert работает верно:
Триггер на delete аналогичный:
Он срабатывает верно при выполнении запроса DELETE. Но при удалении строки из таблицы SQL выдает ошибку: " ... Сведение об ошибке: Значения строки обновлены или удалены, либо не делают строку уникальной, либо они изменяют несколько строк (строк: 2)".
С триггером на update такая же проблема, ошибка аналогичная. Подскажите, в чем проблема. Заранее спасибо.
Триггер на insert работает верно:
Код:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Триггер_ins]
ON [dbo].[Registration] FOR INSERT
AS
IF @@ROWCOUNT=1
BEGIN
IF(SELECT Books.bCopyes
FROM Books,inserted
WHERE Books.bCode=inserted.bCode)<=0
BEGIN
ROLLBACK TRAN
PRINT 'Отмена. Книги нет в наличии!'
END
ELSE
BEGIN
DECLARE @y INT
SELECT @y=bCode
FROM inserted
UPDATE Books
SET bCopyes=bCopyes-1
WHERE bCode=@y
END
END
Код:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[Триггер_del]
ON [dbo].[Registration] FOR DELETE
AS
IF @@ROWCOUNT=1
BEGIN
DECLARE @y INT
SELECT @y=bCode
FROM deleted
UPDATE Books
SET bCopyes=bCopyes+1
WHERE bCode=@y
END
С триггером на update такая же проблема, ошибка аналогичная. Подскажите, в чем проблема. Заранее спасибо.