如何在if條件失敗時停止事務?如何在SQL Server 2008中停止事務?
如果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';
它引發錯誤,但也使得更新。
謝謝。