Welcome to the { mindfrost82.com } forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

Go Back   { mindfrost82.com } > Gadget Corner > Tech Newsgroups > Programming > Databases > General SQL Server Support

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 07-24-2008, 03:41 PM
Andy Baker
 
Posts: n/a
Delete Trigger

I have set up a trigger that updates a table in another part of may database
whenever a row is deleted - of the form
CREATE TRIGGER t_Delete ON tblOrderDetails AFTER DELETE
AS
SELECT @Quantity = Quantity FROM DELETED
etc etc
This works fine if I delete only one row from tblOrderDetails at a time, but
if I run a DELETE query that deletes more than one row, the correct rows are
deleted but my trigger only gets executed once, where I want it to be
executed for each deleted row. Is this normal behaviour, or am I doing
somthing wrong? Thanks in advance.

Andy Baker


Reply With Quote
  #2 (permalink)  
Old 07-24-2008, 04:43 PM
Plamen Ratchev
 
Posts: n/a
Re: Delete Trigger

The trigger fires once for the delete statement but you have access to all
deleted rows in the Deleted logical table. You have to write your code to
handle multiple rows. For example, in your select statement you can use SUM
to get the summary quantity for all deleted rows:

SELECT @Quantity = SUM(Quantity)
FROM Deleted;

HTH,

Plamen Ratchev
http://www.SQLStudio.com

Reply With Quote
  #3 (permalink)  
Old 07-24-2008, 10:08 PM
David Portas
 
Posts: n/a
Re: Delete Trigger

"Andy Baker" <abaker@NOSPAMvanputer.com> wrote in message
news:V4adnYrYUYXLCRXVnZ2dneKdnZydnZ2d@posted.plusn et...
>I have set up a trigger that updates a table in another part of may
>database whenever a row is deleted - of the form
> CREATE TRIGGER t_Delete ON tblOrderDetails AFTER DELETE
> AS
> SELECT @Quantity = Quantity FROM DELETED
> etc etc
> This works fine if I delete only one row from tblOrderDetails at a time,
> but if I run a DELETE query that deletes more than one row, the correct
> rows are deleted but my trigger only gets executed once, where I want it
> to be executed for each deleted row. Is this normal behaviour, or am I
> doing somthing wrong? Thanks in advance.
>
> Andy Baker
>
>


The only thing you were doing wrong was to assume that the trigger would be
executed for each row. Triggers execute once per statement, not per row. So
you need to change your code reflect that. Unfortunately we don't know what
your trigger does with the value @Quantity so it's hard to advise you.

--
David Portas


Reply With Quote
  #4 (permalink)  
Old 07-25-2008, 08:53 AM
Andy Baker
 
Posts: n/a
Re: Delete Trigger


"David Portas" <REMOVE_BEFORE_REPLYING_dportas@acm.org> wrote in message
news:bq2dne4ys_7PchXVnZ2dnUVZ8uOdnZ2d@giganews.com ...
> "Andy Baker" <abaker@NOSPAMvanputer.com> wrote in message
> news:V4adnYrYUYXLCRXVnZ2dneKdnZydnZ2d@posted.plusn et...
>>I have set up a trigger that updates a table in another part of may
>>database whenever a row is deleted - of the form
>> CREATE TRIGGER t_Delete ON tblOrderDetails AFTER DELETE
>> AS
>> SELECT @Quantity = Quantity FROM DELETED
>> etc etc
>> This works fine if I delete only one row from tblOrderDetails at a time,
>> but if I run a DELETE query that deletes more than one row, the correct
>> rows are deleted but my trigger only gets executed once, where I want it
>> to be executed for each deleted row. Is this normal behaviour, or am I
>> doing somthing wrong? Thanks in advance.
>>
>> Andy Baker
>>
>>

>
> The only thing you were doing wrong was to assume that the trigger would
> be executed for each row. Triggers execute once per statement, not per
> row. So you need to change your code reflect that. Unfortunately we don't
> know what your trigger does with the value @Quantity so it's hard to
> advise you.
>
> --
> David Portas
>


Thanks - that clears it up. I have changed my code to account for it.

Andy Baker


Reply With Quote
Reply

  { mindfrost82.com } > Gadget Corner > Tech Newsgroups > Programming > Databases > General SQL Server Support


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are Off
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 11:57 AM.


Powered by vBulletin, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.
© 1999-2008 mindfrost82.com v11.0


Sponsors:
Debt Consolidation | Free Credit Report | Actress | Personal Loans | Currency Converter



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114