zoukankan      html  css  js  c++  java
  • 触发器

    触发器实例一:

    GO
    /****** 对象: Trigger [TR_annlee_BOM_ORDERS_AUTO_annlee_SEND_ORDERS]    脚本日期: 11/12/2008 17:22:36 ******/
    IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[TR_annlee_BOM_ORDERS_AUTO_annlee_SEND_ORDERS]'))
    DROP TRIGGER [dbo].[TR_annlee_BOM_ORDERS_AUTO_annlee_SEND_ORDERS]


    GO
    /****** 对象: Trigger [dbo].[TR_annlee_BOM_ORDERS_AUTO_annlee_SEND_ORDERS]    脚本日期: 11/12/2008 17:22:41 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    --订单触发器
    CREATE TRIGGER [dbo].[TR_annlee_BOM_ORDERS_AUTO_annlee_SEND_ORDERS] ON [dbo].[annlee_bom_orders]
    FOR INSERT, UPDATE
    AS
    /* 插入己付款的订单号 */
    INSERT INTO annlee_send_orders (orderid)
        SELECT a.orderid
            FROM INSERTED a INNER JOIN DELETED b ON a.orderid=b.orderid
       where a.status = 1 AND b.status<>1 -- 己付款

    触发器实例二:

    GO
    /****** 对象: Trigger [TR_annlee_RECE_STORAGE_AUTO_INSERT_annlee_GDM_ITEM_STORAGE]    脚本日期: 11/12/2008 17:23:49 ******/
    IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[TR_annlee_RECE_STORAGE_AUTO_INSERT_annlee_GDM_ITEM_STORAGE]'))
    DROP TRIGGER [dbo].[TR_annlee_RECE_STORAGE_AUTO_INSERT_annlee_GDM_ITEM_STORAGE]


    GO
    /****** 对象: Trigger [dbo].[TR_annlee_RECE_STORAGE_AUTO_INSERT_annlee_GDM_ITEM_STORAGE]    脚本日期: 11/12/2008 17:23:52 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:   <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description: <Description,,>
    -- =============================================
    CREATE TRIGGER [dbo].[TR_annlee_RECE_STORAGE_AUTO_INSERT_annlee_GDM_ITEM_STORAGE] ON [dbo].[annlee_rece_storage]
    FOR INSERT,DELETE,UPDATE
    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra, result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

        -- Insert statements for trigger here

    SELECT itemcode,itemcolor,itemsize,0 itemcounts INTO #TmpStorage FROM DELETED a WHERE NOT EXISTS(SELECT 1 FROM INSERTED b WHERE a.itemcode=b.itemcode AND a.itemcolor=b.itemcolor AND a.itemsize=b.itemsize)
    UNION ALL
    SELECT itemcode,itemcolor,itemsize,itemcounts FROM INSERTED

    SELECT itemcode,itemcolor,itemsize,SUM(itemcounts) itemcounts INTO #Tmp2 FROM(
    SELECT itemcode,itemcolor,itemsize,itemcounts FROM #TmpStorage
    UNION ALL
    SELECT c.itemcode,b.itemcolor,b.itemsize,-b.quantity
       FROM annlee_bom_orders a INNER JOIN annlee_bom_ordersitem b ON a.orderid=b.orderid
        INNER JOIN annlee_gdm_item c ON b.itemid=c.itemid
        INNER JOIN #TmpStorage d ON c.itemcode=d.itemcode AND b.itemcolor=d.itemcolor AND b.itemsize=d.itemsize
       WHERE a.status=1
    ) x
    GROUP BY itemcode,itemcolor,itemsize

    UPDATE annlee_gdm_item_storage SET itemcounts= b.itemcounts
       FROM annlee_gdm_item_storage a INNER JOIN #Tmp2 b ON a.itemcode=b.itemcode AND a.itemcolor=b.itemcolor AND a.itemsize=b.itemsize

    INSERT INTO annlee_gdm_item_storage (itemcode,itemcolor,itemsize,itemcounts)
       SELECT itemcode,itemcolor,itemsize,itemcounts FROM #Tmp2 a WHERE NOT EXISTS (SELECT 1 FROM annlee_gdm_item_storage b WHERE a.itemcode=b.itemcode AND a.itemcolor=b.itemcolor AND a.itemsize=b.itemsize)
    END

    存储过程实例:

    GO
    /****** 对象: StoredProcedure [dbo].[update_pay_order_before_xx_minute]    脚本日期: 11/13/2008 12:20:21 ******/
    IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[update_pay_order_before_xx_minute]') AND type in (N'P', N'PC'))
    DROP PROCEDURE [dbo].[update_pay_order_before_xx_minute]

    GO
    /****** 对象: StoredProcedure [dbo].[update_pay_order_before_xx_minute]    脚本日期: 11/13/2008 12:20:26 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:   <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description: <Description,,>
    -- =============================================
    CREATE PROCEDURE [dbo].[update_pay_order_before_xx_minute]

    @pMinute int

    AS
    BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

        -- Insert statements for procedure here
    SELECT * INTO #TmpPayOrder FROM annlee_bom_pay_order WHERE DATEDIFF(MI,createtime,GETDATE()) > @pMinute

    UPDATE annlee_gdm_item_storage SET itemcounts=itemcounts+b.quantity
       FROM annlee_gdm_item_storage a INNER JOIN #TmpPayOrder b ON a.itemcode=b.itemcode AND a.itemcolor=b.itemcolor AND a.itemsize=b.itemsize

    DELETE FROM annlee_bom_pay_order FROM annlee_bom_pay_order a INNER JOIN #TmpPayOrder b ON a.id=b.id

    END

    keim,毕业于安徽科技学院理学院,2003年开始对Web开发有浓厚的兴趣,并专注于C#/java Web开发,软件架构设计、分布式相关、项目管理、前端设计等等,实战派...
  • 相关阅读:
    查看端口有没有被占用
    微信公众号2()
    How to insert a segment of noise to music file
    puppet practice
    Docker Commands
    LempelZiv algorithm realization
    The algorithm of entropy realization
    Java network programmingguessing game
    Deploy Openstack with RDO and Change VNC console to Spice
    puppet overview
  • 原文地址:https://www.cnblogs.com/zqmingok/p/1486923.html
Copyright © 2011-2022 走看看