0
我的问题是,我需要创建一个而不是删除触发器,以防止产品在过去两年内被销售时被删除。否则应该删除该产品的所有订单行。而不是删除触发器,以防止销售产品删除
我的表是这个样子:
PRODUCT_TABLE: ID, price
ORDERITEM_TABLE: ID, Quantity, productid, ordersid
ORDERS_TABLE: ID, Orderdate
其我的第一个触发一个让我此刻是很笨的,但有一个想法,做这样的事情:
CREATE TRIGGER productdelete
ON product
INSTEAD OF DELETE
AS
BEGIN
DECLARE @today datetime, @orderdate date
SET @today = GetDate()
IF NOT EXISTS(SELECT productid from product where productid = (select productid from deleted) and (SELECT orderdate from orders) > (SELECT DATEADD(YEAR, -2, @today)))
raiserror ('Unable to delete', 16,1)
rollback tran
END
触发器将触发任何不在表格中的产品。
有没有人有任何建议?
你今天早些时候发布这个问题吗?我知道我今天早些时候看到这个确切的问题。您的条件逻辑不正确。它需要将订单表中OrderDate与今天的日期进行比较。 –