Публикация

Автоматическое заполнение детали

Эта запись предназначается больше мне самой - чтобы не забыть. Но, может, кому-то еще пригодится.
Исходные данные: есть справочник категорий продуктов.
Задача: Создать в разделе продаж деталь, на которой будут отображаться все категории продуктов с параметром "сумма" - общая сумма заказа по этой категории.
Решение:
Создать триггер на добавление записи в таблицу продаж:

CREATE TRIGGER [dbo].[tr_tbl_Opportunity_Create]
   ON  [dbo].[tbl_Opportunity]
   AFTER INSERT
AS
BEGIN
        -- SET NOCOUNT ON added to prevent extra result sets from
        -- interfering with SELECT statements.
        SET NOCOUNT ON;

        DECLARE mycursor cursor LOCAL FOR SELECT ID FROM tbl_Prod_Cat;
        DECLARE         @testId uniqueidentifier;
        DECLARE @id uniqueidentifier;
   
        open mycursor
        fetch next FROM mycursor INTO @testId
        while @@fetch_status = 0
        begin
                INSERT INTO [tbl_ProdGroups2](
                [CreatedByID],
                [CreatedOn],
                [ModifiedByID],
                [ModifiedOn],
                [AccountID],
                [CatNameID],
                [Sum]  
                )

                SELECT
                [D].[CreatedByID] AS [CreatedByID]
                ,getdate() AS [CreatedOn]
                ,[D].[ModifiedByID] AS [ModifiedByID]
                ,[D].[ModifiedOn] AS [ModifiedOn]
                ,[D].[ID] AS [OpportunityID]
                ,@testId AS [CatNameID]
                ,0 AS [Sum]


                FROM [INSERTED] AS [D]
                fetch next FROM mycursor INTO @testId
        end
        close mycursor;
        deallocate mycursor
END
GO

Нравится

Поделиться

0 комментариев
Показать все комментарии