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與今天的日期進行比較。 –