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 asIF
UPDATE(TEXT_VALUE)BEGIN
DECLARE
@SQL NVARCHAR(2000)DECLARE
@UpdateTable Varchar(100)DECLARE
@RefTable Varchar(100)DECLARE
@Field Varchar(50)SELECT
*INTO
#TestInsertFROM
InsertedSELECT
@UpdateTable = CASE TEXT_FIELD_IDWHEN
188744733 THEN 'ProjectOfficeSuite..ProjectScheduleStatus'WHEN
188744734 THEN 'ProjectOfficeSuite..ProjectScopeStatus'WHEN
188744735 THEN 'ProjectOfficeSuite..ProjectResourceStatus' END,@Field
= CASE TEXT_FIELD_IDWHEN
188744733 THEN 'StatusColorTypeID'WHEN
188744734 THEN 'StatusColorTypeID'WHEN
188744735 THEN 'StatusColorTypeID' END,@RefTable
= CASE TEXT_FIELD_IDWHEN
188744733 THEN 'ProjectOfficeSuite..StatusColorType'WHEN
188744734 THEN 'ProjectOfficeSuite..StatusColorType'WHEN
188744735 THEN 'ProjectOfficeSuite..StatusColorType' ENDFROM
#TestInsertSET
@SQL='UPDATE '
+ @UpdateTable + 'SET '
+@Field + ' = Main.'+@Field +'FROM '
+ @UpdateTable + ' tJOIN
(
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 @SQLEND

