如何在触发器中使用try-catch

问题描述 投票:0回答:1

我想防止将数据插入表中,并在“OrderDate”列大于“2021-01-01”时返回“错误”。如何通过在 sql-server v.2019 中使用 TRIGGER 和 TRY...CATCH 来做到这一点

订单ID 订购日期
10015 2019-05-06
10016 2020-06-01
10017 2020-06-02
CREATE TRIGGER date_check ON Sales.Orders AFTER INSERT  
AS
    BEGIN TRY
    INSERTED.orderdate<'2021-01-01' 
    PRINT 'NO ERROE'
    END TRY
    BEGIN CATCH
    PRINT 'ERROR'
    END CATCH
GO
sql-server error-handling triggers try-catch sql-insert
1个回答
0
投票

来自 如何中止触发器中的多行插入

IF  INSERTED.orderdate>='2021-01-01'     
BEGIN
   RAISERROR ('condition doesn't satisfy something', 16, 1)
   ROLLBACK TRANSACTION
END
© www.soinside.com 2019 - 2024. All rights reserved.