Trigger on ProjectServer tables, please help!

Unanswered Trigger on ProjectServer tables, please help!

  • Thursday, January 11, 2007 3:48 PM
     
     

    I am trying to put a trigger on a ProjectServer table to copy the updated data to a specified table.  When I add the trigger, MS Project will no longer let me change any of the project information.  I'm stumped, here is my trigger, any ideas? (I'll post this in the project section as well)

    set ANSI_NULLS ON

    set QUOTED_IDENTIFIER ON

    go

    alter trigger [UpdateStatusColors] on [dbo].[MSP_TEXT_FIELDS]

    after update as

    IF UPDATE(TEXT_VALUE)

    BEGIN

    DECLARE @SQL NVARCHAR(2000)

    DECLARE @UpdateTable Varchar(100)

    DECLARE @RefTable Varchar(100)

    DECLARE @Field Varchar(50)

    SELECT *

    INTO #TestInsert

    FROM Inserted

    SELECT @UpdateTable = CASE TEXT_FIELD_ID

    WHEN 188744733 THEN 'ProjectOfficeSuite..ProjectScheduleStatus'

    WHEN 188744734 THEN 'ProjectOfficeSuite..ProjectScopeStatus'

    WHEN 188744735 THEN 'ProjectOfficeSuite..ProjectResourceStatus' END,

    @Field = CASE TEXT_FIELD_ID

    WHEN 188744733 THEN 'StatusColorTypeID'

    WHEN 188744734 THEN 'StatusColorTypeID'

    WHEN 188744735 THEN 'StatusColorTypeID' END,

    @RefTable = CASE TEXT_FIELD_ID

    WHEN 188744733 THEN 'ProjectOfficeSuite..StatusColorType'

    WHEN 188744734 THEN 'ProjectOfficeSuite..StatusColorType'

    WHEN 188744735 THEN 'ProjectOfficeSuite..StatusColorType' END

    FROM #TestInsert

    SET @SQL='

    UPDATE ' + @UpdateTable + '

    SET ' +@Field + ' = Main.'+@Field +'

    FROM ' + @UpdateTable + ' t

    JOIN

    (

    SELECT fds.PROJ_ID, CAST(tf.TEXT_VALUE AS VARCHAR(200)) AS Status, Ref.*

    FROM #TestInsert AS fds

    INNER JOIN ProjectServer.dbo.MSP_TEXT_FIELDS AS tf ON tf.Proj_ID=FDS.Proj_ID

    INNER JOIN '+@RefTable+' Ref ON Ref.Name=cast(tf.TEXT_VALUE AS VARCHAR(200))

    ) Main ON t.PROJ_ID = Main.PROJ_ID '

    EXEC sp_executesql @SQL

    END