資料庫觸發器_trigger

來源:互聯網
上載者:User

標籤:

部門表_刪除:

USE [test]GO/****** Object:  Trigger [dbo].[部門_Delete]    Script Date: 2015/8/31 16:41:46 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:        <Author,Ammy,Name>-- Create date: <Create Date,,>-- Description:    <Description,顯示一次操作觸發器修改了多少條記錄,>--因為每個操作類型在一次操作時,對一個觸發器只啟用一次,但是啟動並執行操作可能更新或刪除了10條記錄,--Inserted表和Deleted表裡會有10條記錄,用系統變數@@ROWCOUNT 可以得知上一次操作所更改的記錄數-- =============================================CREATE TRIGGER [dbo].[部門_Delete]ON [test].[dbo].[部門表]AFTER DELETEASBEGIN    PRINT ‘您此次刪除了‘+CAST(@@ROWCOUNT AS VARCHAR)+‘條記錄‘ENDGO

部門表_插入:

 

USE [test]GO/****** Object:  Trigger [dbo].[部門_Insert]    Script Date: 2015/8/31 16:42:29 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:        <Author,Ammy,Name>-- Create date: <Create Date,2015/08/19,>-- Description:    <Description,部門表插入時發出提示:又添加了一種產品,並向日誌表插入一條記錄>-- =============================================CREATE TRIGGER [dbo].[部門_Insert]ON [dbo].[部門表]AFTER INSERTASBEGIN    DECLARE @事件部門名稱 NVARCHAR(50)    SELECT @事件部門名稱=部門名稱 FROM inserted    IF(SELECT LEN(電話號碼) FROM inserted )<>11        BEGIN            PRINT‘電話號碼位元必須是11位‘            ROLLBACK TRANSACTION        END    ELSE        BEGIN            print ‘又添加了一個部門‘            INSERT INTO test.dbo.日誌表(事件名,事件人,事件時間)VALUES(‘添加新部門:‘[email protected]事件部門名稱,‘admin‘,GETDATE());            --設定此TRIGGER的巢狀型別為true,如果在 dbo.日誌表 上建立觸發器,會觸發啟用dbo.日誌表_Insert 觸發器        ENDENDGO

部門表_更新:

USE [test]GO/****** Object:  Trigger [dbo].[部門表_只能修改部門編號]    Script Date: 2015/8/31 16:43:17 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:        <Author,Ammy,Name>-- Create date: <Create Date,2015-08-20,>-- Description:    <Description,用update(欄位名),完成只能修改某欄位的觸發器>-- =============================================CREATE TRIGGER [dbo].[部門表_只能修改部門編號]ON [dbo].[部門表]Instead of UPDATEASBEGIN    SET NOCOUNT ON;    IF UPDATE(部門編號)        BEGIN            DECLARE @部門編號 NVARCHAR(20),                    @部門名稱 NVARCHAR(20),                    @部門職責 Nvarchar(20)            SET @部門編號=(SELECT 部門編號 FROM inserted)            SET @部門名稱=(SELECT 部門名稱 FROM inserted)            SET @部門職責 =(SELECT 部門職責 FROM inserted)            UPDATE 部門表 SET 部門編號=@部門編號            WHERE 部門名稱[email protected]部門名稱--AND 部門編號[email protected]部門編號 AND @部門職責=@部門職責            --這種寫法很不好,因為只能操作的語句只能按這種修改才起作用        END     ELSE        BEGIN             PRINT ‘只能修改部門編號‘            RAISERROR(‘除了部門編號之外的欄位都不允許修改‘,16,5)            --PRINT 輸出自訂資訊,但是只能在查詢編輯器窗格中運行SQL語句才能看到這些自訂的資訊,            --而其他的前端應用程式都不會顯示這些自訂的資訊        ENDENDGO

日誌表觸發器:

USE [test]GO/****** Object:  Trigger [dbo].[日誌表_Insert]    Script Date: 2015/8/31 16:44:11 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author:        <Author,,Name>-- Create date: <Create Date,,>-- Description:    <Description,,>-- =============================================CREATE TRIGGER [dbo].[日誌表_Insert]ON [test].[dbo].[日誌表]AFTER INSERTAS BEGIN    PRINT‘資料庫又有記錄變動了‘END    GO

 

資料庫觸發器_trigger

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.