2012年8月21日 星期二

仿 MySQL 的 MGR_MyISAM 功能

CREATE TRIGGER [dbo].[MEMBERS0_AIUD] ON [dbo].[MEMBERS0] AFTER UPDATE, INSERT, DELETE
AS
BEGIN
    DECLARE @ID int
    DECLARE @FULL_NAME nvarchar(20)
    DECLARE @GENDER nchar(1)
    DECLARE @DEPARTMENT tinyint
    DECLARE @CREATE_DT nchar(19)
  
    IF EXISTS (SELECT 1 FROM INSERTED) AND NOT EXISTS (SELECT 1 FROM DELETED)
        BEGIN
            SELECT
                @ID = ID, @FULL_NAME = FULL_NAME, @GENDER = GENDER,
                @DEPARTMENT = DEPARTMENT, @CREATE_DT = CREATE_DT
                FROM INSERTED
            INSERT INTO MEMBERS_MERGE (ID, FULL_NAME, GENDER, DEPARTMENT,
           CREATE_DT) VALUES (@ID, @FULL_NAME, @GENDER, @DEPARTMENT,
           @CREATE_DT)
        END
    IF EXISTS (SELECT 1 FROM INSERTED) AND EXISTS (SELECT 1 FROM DELETED)
        BEGIN
            SELECT
                @ID = ID, @FULL_NAME = FULL_NAME, @GENDER = GENDER,
                @DEPARTMENT = DEPARTMENT, @CREATE_DT = CREATE_DT
                FROM INSERTED
            UPDATE MEMBERS_MERGE SET
                ID = @ID, FULL_NAME = @FULL_NAME, GENDER = @GENDER,
                DEPARTMENT = @DEPARTMENT, CREATE_DT = @CREATE_DT
                WHERE ID = (SELECT ID FROM DELETED)
        END
    IF NOT EXISTS (SELECT 1 FROM INSERTED) AND EXISTS (SELECT 1 FROM DELETED)
        BEGIN
            DELETE FROM MEMBERS_MERGE WHERE ID = (SELECT ID FROM DELETED)
        END
END

沒有留言:

張貼留言