4.22sql学习

---触发器
USE NorthWind
IF EXISTS(SELECT name FROM sysobjects WHERE name='tr_product_update' AND type='TR')
DROP TRIGGER tr_product_update
GO
USE NorthWind
GO
CREATE TRIGGER tr_product_update ON products
FOR UPDATE
AS
DECLARE @msg varchar(100)
SELECT @msg=str(@@rowcount)+'employees updated by this statement'
RETURN
GO


--inserted表和deleted表
USE NorthWind
GO
CREATE TRIGGER tr_suppliers_del
ON suppliers
FOR DELETE
AS
IF @@rowcount=0
RETURN
DELETE products
FROM deleted d,supliers s
WHERE d.supplierid=s.supplierid
IF @@error!=0
BEGIN
ROLLBACK tran
RETURN
END
RETURN
GO

 

---UPDATE(column):判断指定的某列是否经过了修改。
USE NorthWind
GO
--建立登记修改人帐号的表
CREATE TABLE who_change(change_date datetime,
                        change_column varchar(50),
                        who           varchar(50)
)
GO
--建立触发器
CREATE TRIGGER tr_orderdetail_insupd
ON [order details]
FOR INSERT,UPDATE
AS
IF UPDATE(UnitPrice)
BEGIN
INSERT who_change
VALUES (getdate(),'UnitPrice updated',user_name())
END
ELSE IF UPDATE(Quantity)
BEGIN
INSERT who_change
VALUES(getdate(),'Quantity updated',user_name())
END
ELSE IF UPDATE(Discount)
BEGIN
INSERT who_change
VALUES(getdate(),'Discount updated',user_name())
END
GO
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值