April 20, 2007 at 8:52 am
Hi Everyone,
I am new to working with triggers. I want the trigger below to only fire if a particular column is updated. Can anyone tell me if I am on the right track? Can I use the same Update statement on a delete trigger?
CREATE TRIGGER trDB_DOCTYPE_IU_ReplicationDateTime ON DB_DOCTYPE
FOR INSERT, UPDATE
AS
-- Update the Replication date time if DDT_DOCU_PRINT_TEXT is updated.
If Update (DDT_DOCU_PRINT_TEXT )
UPDATE TitleDataReplicationDateTime
SET
TitleDataReceiveDateTime=getdate()
FROM
INSERTED I
INNER JOIN DB_DOCUMNT D ON I.DDT_DOCU_TYPE_CODE=D.DDO_TYPE_CODE
INNER JOIN vwTitleNumbersForDocRegNumber V ON D.DDO_REGIST_NBR=V.DocumentRegistrationNumber
INNER JOIN TitleDataReplicationDateTime TDR ON V.TitleReferenceNumber=TDR.TitleReferenceNumber
GO
April 20, 2007 at 9:13 am
Yes you're on the right track. ![]()
You'll have to change the CREATE TRIGGER statement to FOR INSERT, UPDATE, DELETE. You can then have an ELSE statement and the same UPDATE statement again:
If Update (DDT_DOCU_PRINT_TEXT)
UPDATE.....
ELSE
UPDATE.....
Any INSERT or UPDATE's of DDT_DOCU_PRINT_TEXT will fire the top UPDATE statement and any DELETEs whatsoever will fire the bottom UPDATE statement.
This okay?
April 20, 2007 at 9:13 am
Looks OK to me
The trigger will fire for any INSERT/UPDATE regardless of DDT_DOCU_PRINT_TEXT update or not
The IF UPDATE test restricts the update to only when DDT_DOCU_PRINT_TEXT is updated
Also remember that not all rows may get updated depending on the INNER JOINS (unless you can guarantee that each join will match)
| Can I use the same Update statement on a delete trigger |
Why? The row has been deleted and besides 'IF UPDATE' cannot be used with DELETE operations
Far away is close at hand in the images of elsewhere.
Anon.
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply