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 分享