我的问题是我需要创建一个而不是删除触发器,以防止产品在过去两年内被销售时被删除。否则,应该删除该产品的所有订单行。
我的表看起来像这样:
string lineArr[];
这是我的第一个触发因素,所以我现在很无能为力,但有想法做这样的事情:
PRODUCT_TABLE: ID, price
ORDERITEM_TABLE: ID, Quantity, productid, ordersid
ORDERS_TABLE: ID, Orderdate
触发器将触发表中没有的任何产品。
有人有任何建议吗?
答案 0 :(得分:0)
由于您使用的是INSTEAD OF触发器,因此无需回滚事务。
如果条件允许,只需在触发器代码中执行DELETE,否则不执行任何操作。
答案 1 :(得分:0)
触发器在隐式事务下运行。
CREATE TRIGGER productdelete
ON product
INSTEAD OF DELETE
AS
BEGIN
IF EXISTS(SELECT NULL from deleted) and ..
raiserror ('Unable to delete', 16,1)
ELSE IF
delete from yourtable where xx in (select yy from deleted)
END