sql触发器怎么使用

sql中的触发器是对某个表进行操作时而触发的某种条件,可以用create语句创建触发器,drop语句删除触发器,alter语句禁用触发器等

sql触发器怎么使用

触发器

在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序。触发器是一个特殊的存储过程。

CREATE TRIGGER tr_update_Stock   --自动采购触发器 ON T_Product FOR update AS IF (update(Stock)) --判断stock字段是否更新 BEGIN   --查询出库存低于下限的产品近一个月的消耗量  --创建临时表  IF object_id('[tempdb].[dbo].##table1') IS NOT NULL --判断临时表#tmp是否存在,存在则删除     DROP TABLE ##table1             SELECT * INTO ##table1 FROM (SELECT row_number() OVER (ORDER BY ProductID) AS rowNo,c.ZNumber - c.Stock AS purchaseNum,* FROM (  SELECT  ProductID,SUM(s.Numbers) ZNumber,p.Stock,SUM(s.OutMoney) ZMoney,p.Price   FROM [dbo].[T_StorageOut] t inner join[dbo].[T_StorageRelation] s   ON t.StorageOutID=s.StorageOutID inner join T_Product p ON s.ProductID=p.Id  WHERE t.MakerTime between Convert(VARCHAR,DATEADD(MONTH,-1,GETDATE()),23) and Convert(VARCHAR,GETDATE(),23) and ProductID in (SELECT Id FROM V_ProductSupplierInfo where (Stock-StockLowerLimit)0) BEGIN    WHILE @curIndex <p>这是一个自动采购的触发器,主要需要注意的触发条件,以及临时表的作用。</p><p><strong>触发器的使用</strong></p><p><strong>创建触发器</strong></p><pre class="brush:html;toolbar:false">CREATE TRIGGER tr_update_Stock

删除触发器 

DROP  TRIGGER tr_update_Stock

禁用

ALTER TABLE trig_example DISABLE TRIGGER trig1 GO

恢复

ALTER TABLE trig_example ENABLE TRIGGER trig1 GO

禁用某个表上的所有触发器

ALTER TABLE 你的表 DISABLE TRIGGER all

启用某个表上的所有触发器

ALTER TABLE 你的表 enable TRIGGER all

禁用所有表上的所有触发器

exec sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'

启用所有表上的所有触发器

exec sp_msforeachtable 'ALTER TABLE ? enable TRIGGER all'

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享