trigger_SiteCodeTableEntries_KeywordDeleted

Definition

Copy


        CREATE TRIGGER [dbo].[trigger_SiteCodeTableEntries_KeywordDeleted]
           ON  [dbo].[SiteCodeTableEntries]
           AFTER UPDATE, DELETE
        AS 
        BEGIN

            SET NOCOUNT ON

            DECLARE @CurID int

            DECLARE MyCur CURSOR local fast_forward FOR
                SELECT DISTINCT sc.ID FROM dbo.SiteContent sc
                    INNER JOIN
                    dbo.ObjectTags ot 
                    ON ot.ObjectGuid = sc.Guid
                    WHERE ot.CodeTableTagID IS NULL
                UNION
                SELECT sc.ID FROM dbo.SiteContent sc
                    INNER JOIN
                    dbo.ObjectTags ot 
                    ON ot.ObjectGuid = sc.Guid
                    INNER JOIN
                        (SELECT ID FROM Deleted) tags
                    ON tags.ID = ot.CodeTableTagID
            OPEN MyCur

            FETCH NEXT FROM MyCur INTO @CurID

            WHILE @@FETCH_STATUS = 0
                BEGIN
                    UPDATE dbo.Search SET TagText=dbo.fnBuildTagText(@CurID)
                    WHERE SiteContentID = @CurID

                    FETCH NEXT FROM MyCur
                    INTO @CurID
                END
            CLOSE MyCur
            DEALLOCATE MyCur

            DELETE FROM dbo.ObjectTags WHERE CodeTableTagID IS NULL

        END