On Fri, May 25, 2001 at 04:16:00PM -0700, Ian Harding wrote:
> Well, I am making progress in rewriting my MSSQL Server T-SQL triggers and stored procedures in Pl/Tcl. However, I
haverun into a bit of an issue and I wonder if anyone knows the best way to address it...
>
> In T-SQL triggers, you can use the UPDATE keyword in conditional expressions as in
>
> IF UPDATE(myfield)
> BEGIN
> do something
> END
>
> It detects the update of the field. I have been comparing
> $NEW(myfield) and $OLD(myfield) which works ok, except where I
> used the UPDATE() test as a crutch. I sometimes do an update
> like
>
> UPDATE mytable SET myfield = myfield WHERE...
>
> to fire an update trigger, and executing only the code in that trigger surrounded by UPDATE(myfield).
>
> Is there an easy way to duplicate this, or should I work around it?
how about
create view
relationname
as select * from _real_relation_name_;
create rule
on update to relationname
do instead (
update _real_relation_name_
set fld=new.fld,
col=new.col,
modified=current_timestamp,
differencefield=old.something-new.something,
whatever=some_function()
;
insert into _some_tracking_relation_
( field, list, here )
values
( ... )
);
check out the manuals for 'create rule'. very handy stuff.
--
#95: We are waking up and linking to each other. We are watching. But
we are not waiting. -- www.cluetrain.com
will@serensoft.com
http://sourceforge.net/projects/newbiedoc -- we need your brain!
http://www.dontUthink.com/ -- your brain needs us!