Главная /
Программирование в Microsoft SQL Server 2000 /
CREATE TRIGGER CustomerDelete ON Customer INSTEAD OF DELETE AS SET NOCOUNT ON IF ( EXISTS ( SELECT * FROM DELETED JOIN Sale ON DELETED.CustId = Sale.CustId WHERE DATEDIFF( DAY, SaleDate, CURRENT_TIMESTAMP ) < 365 ) ) BEGIN RAISERROR( 'One or more custo
CREATE TRIGGER CustomerDelete
ON Customer
INSTEAD OF DELETE
AS
SET NOCOUNT ON
IF ( EXISTS (
SELECT *
FROM DELETED JOIN Sale
ON DELETED.CustId = Sale.CustId
WHERE DATEDIFF( DAY, SaleDate, CURRENT_TIMESTAMP ) < 365 ) )
BEGIN
RAISERROR( 'One or more customers have recent sales', 16, 1)
RETURN
END
DELETE
FROM Sale WHERE CustId IN
( SELECT CustId
FROM DELETED )
IF ( @@ERROR > 0 ) BEGIN
ROLLBACK
RAISERROR( 'Could not delete all old sales', 16, 2 )
RETURN
END
DELETE
FROM Customer WHERE CustId IN
( SELECT CustId
FROM DELETED )
IF ( @@ERROR > 0 ) BEGIN
ROLLBACK
RAISERROR( 'Could not delete all old customers', 16, 3 )
RETURN
END
RETURN
Данный сценарий выполняет действия:
вопрос
Правильный ответ:
проверяется, имеются ли в таблице Sale прошлогодние заказы удаляемых клиентов, затем удаляются соответствующие строки таблицы Sale, т.к. все они устарели, удаляются клиенты и, в случае неудачи, отменяются все изменения
удаляются соответствующие строки таблицы Sale, т.к. все они устарели, затем проверяется, имеются ли в таблице Sale прошлогодние заказы удаляемых клиентов, затем удаляются клиенты и, в случае неудачи, отменяются все изменения
удаляются соответствующие строки таблицы Sale, т.к. все они устарели, в случае неудачи, отменяются все изменения, затем проверяется, имеются ли в таблице Sale прошлогодние заказы удаляемых клиентов, затем удаляются клиенты
Сложность вопроса
56
Сложность курса: Программирование в Microsoft SQL Server 2000
83
Оценить вопрос
Комментарии:
Аноним
Гранд мерси за подсказками по интуиту.
27 июн 2019
Аноним
Если бы не опубликованные решения - я бы сломался c этими тестами интуит.
14 ноя 2017
Другие ответы на вопросы из темы базы данных интуит.
- # Диаграммы баз данных обеспечивают:
- # При использовании оператора INSERT для модификации представления следует учитывать ограничения:
- # CREATE FUNCTION CustWithDiscount ( @MinDiscount DEC( 5, 3 ) ) RETURNS @CustWithDiscountTable TABLE ( ( CustID INT NOT NULL, CustName CHAR( 30 ) NOT NULL, CustDisc DEC( 5, 3 ) NULL, PRIMARY KEY( CustID ) ) BEGIN INSERT INTO @CustWithDiscountTable SELECT CustId, Name, CAST( Discount AS VARCHAR( 7 ) ) FROM Customer WHERE Discount >= @MinDiscount RETURN END Данный сценарий выполняет действия:
- # Наиболее гибким способом создания базы данных является:
- # [Большая Картинка]Опция Cascade Delete Related Records позволяет: