Главная /
Программирование в Microsoft SQL Server 2000 /
CREATE TRIGGER TrackCustomerUpdates ON AppDta.dbo.Customer FOR INSERT, UPDATE, DELETE AS DECLARE @InsertedCount INT DECLARE @DeletedCount INT SET @InsertedCount = ( SELECT COUNT (*) FROM INSERTED ) SET @DeletedCount = ( SELECT COUNT(*) FROM DELETED ) IF (
CREATE TRIGGER TrackCustomerUpdates
ON AppDta.dbo.Customer
FOR INSERT, UPDATE, DELETE
AS
DECLARE @InsertedCount INT
DECLARE @DeletedCount INT
SET @InsertedCount = ( SELECT COUNT (*) FROM INSERTED )
SET @DeletedCount = ( SELECT COUNT(*) FROM DELETED )
IF ( @InsertedCount > 0 ) BEGIN
INSERT INTO AppDta.dbo.CustUpdLog
( CustId, Action, UpdUser, UpdDateTime )
SELECT CustId,
CASE
WHEN ( @DeletedCount > 0 ) THEN 'Update'
ELSE 'Insert'
END,
CURRENT_USER, CURRENT_TIMESTAMP
FROM INSERTED
END
ELSE IF ( @DeletedCount > 0 ) BEGIN
INSERT INTO AppDta.dbo.CustUpdLog ( CustId, Action, UpdUser, UpdDateTime )
SELECT CustId, 'Delete', CURRENT_USER, CURRENT_TIMESTAMP
FROM DELETED
END
Данный сценарий выполняет действия:
вопрос
Правильный ответ:
временная таблица
INSERTED
содержит строки в том случае, когда инструкция INSERT
или UPDATE
обработала хотя бы одну строку. А временная таблица DELETED
содержит строки в том случае, когда инструкция DELETE
или UPDATE
обработала хотя бы одну строку. Для инструкции UPDATE
таблица DELETE
содержит обновленные строки со старыми значениями, а таблица INSERTED
содержит те же строки с новыми значениями. В приведенном примере учтена еще одна особенность триггеров: триггеры операций DELETE
и UPDATE
вызываются даже в том случае, если операция не удалила или не обновила ни одной строки (потому что не нашлось строк, соответствующих условию WHERE
)
временная таблица
DELETED
содержит строки в том случае, когда инструкция INSERT
или UPDATE
обработала хотя бы одну строку. А временная таблица INSERTED
содержит строки в том случае, когда инструкция DELETE
или UPDATE
обработала хотя бы одну строку. Для инструкции UPDATE
таблица DELETE
содержит обновленные строки со старыми значениями, а таблица DELETED
содержит те же строки с новыми значениями. В приведенном примере учтена еще одна особенность триггеров: триггеры операций DELETE
и UPDATE
вызываются даже в том случае, если операция не удалила или не обновила ни одной строки (потому что не нашлось строк, соответствующих условию WHERE
)
временная таблица
DELETED
содержит строки в том случае, когда инструкция INSERT
или UPDATE
обработала хотя бы одну строку. А временная таблица INSERTED
содержит строки в том случае, когда инструкция UPDATE
обработала ВСЕ строки. Для инструкции UPDATE
таблица DELETE
содержит обновленные строки со старыми значениями, а таблица DELETED
содержит те же строки с новыми значениями. В приведенном примере учтена еще одна особенность триггеров: триггеры операций DELETE
и UPDATE
вызываются даже в том случае, если операция не удалила или не обновила ни одной строки (потому что не нашлось строк, соответствующих условию WHERE
) Сложность вопроса
88
Сложность курса: Программирование в Microsoft SQL Server 2000
83
Оценить вопрос
Комментарии:
Аноним
Я провалил зачёт, какого рожна я не углядел этот крутой сайт с всеми ответами по тестам интуит прежде
24 авг 2017
Аноним
Пишет вам сотрудник университета! Прямо сейчас сотрите ответы по интуит. Немедленно!
10 окт 2015
Другие ответы на вопросы из темы базы данных интуит.