SQL - Insert and Update Trigger

I need to write a trigger that will copy one field to another when there's an insert or update.  Since this insert/update is being done by the application, which I have no control over.  Is it possible to do an after trigger for just an update?

Example, there's 2 date field (Delivery_Date and Due_Date).  If Delivery_date is populated, then the trigger will also populate Due_Date.  However, if it's an update and Due_date is already populated, then do not update

Here's what I'm thinking of, but does not work.

Create Trigger dbo.Update_date
On dbo.Purchase_line
After Update
Update Purchase_line
Set   Delivery_date  = Due_Date
From Purchase_line PL
Where PL.Order_ID in (Select I.Order_Id from Inserted I Where I.Order_ID = PL.Order_ID  
                                        I.Line_no = PL.Line_no)
           and PL.Due_Date Is Null

The above, I want it to execute after the Insert/Update is done then fire the above to do an update if "Due_Date" is Null only.
holemaniaAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
Scott PletcherConnect With a Mentor Senior DBACommented:
Create Trigger dbo.Update_date
On dbo.Purchase_line
After /*Insert*,/ Update --uncomment if you also want to default Due_Date on an Insert
As
Set Nocount On
Update Purchase_line
Set   Delivery_date  = Due_Date
From Purchase_line PL
Inner Join inserted I
    On I.Order_ID = PL.Order_ID AND I.Line_no = PL.Line_no
Where
PL.Due_Date Is Null
Go
0
 
holemaniaAuthor Commented:
Thanks that worked nicely.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.