如果 if 条件失败,如何停止交易?
如果为真,我希望此事务停止IF (@dela = '01-01-2013')
,但它会引发错误并继续Update
执行。
CREATE TRIGGER TR_AdaugareModificareOfertaSpeciala
ON OferteSpeciale
FOR UPDATE, INSERT
AS
BEGIN TRAN T1;
DECLARE @dela DATETIME;
SET @dela = (SELECT dela FROM INSERTED);
IF (UPDATE(codP) OR UPDATE(codM) OR UPDATE(dela))
BEGIN
RAISERROR('Nu se poate modifica cheia primara.', 1, 1);
ROLLBACK TRAN T1;
END
SAVE TRANSACTION T1;
IF (@dela = '01-01-2013')
BEGIN
RAISERROR('Data nu este corecta.', 1, 1);
ROLLBACK TRAN T1;
END
示例dela = '01-01-2013':
UPDATE OferteSpeciale SET pret = 23.69 where codP = 'P1' and codM = 'M1';
它会引发错误,但也会进行更新。
谢谢你。