易截截图软件、单文件、免安装、纯绿色、仅160KB

--oracle 触发器,转 sqlserver 问题

--oracle 触发器,转 sqlserver 问题
CREATE OR REPLACE TRIGGER TG_BU_TSTK_IMPORTITEM
BEFORE UPDATE ON TSTK_IMPORTITEM
FOR EACH ROW
DECLARE
VAR_LIBGOODCOUNT NUMERIC(12,2);
BEGIN
---在Oracle 是有:new. 代表是新的值, :old 代表是旧的值, 我利用这两个数来更改另外一个数量
---请问在sql server  的触发器代码该如何做?取得 :old.f_count  和 new.f_count ?
  IF (:OLD.F_COUNT <> :NEW.F_COUNT) OR (:OLD.F_BARCODE <>:NEW.F_BARCODE) THEN
    UPDATE STK_COMMODITY SET F_COUNT=F_COUNT-:OLD.F_COUNT WHERE F_ACCOUNTSUITID=:OLD.F_ACCOUNTSUITID
    AND F_BARCODE=:OLD.F_BARCODE;
    UPDATE STK_COMMODITY SET F_COUNT=F_COUNT+:NEW.F_COUNT WHERE F_ACCOUNTSUITID=:NEW.F_ACCOUNTSUITID
    AND F_BARCODE=:NEW.F_BARCODE;
  END IF;
 
END;
/
基本写法如下:

--触发器的操作1

create table 化验室纱组(本厂编号 int,客户 int,色号 int,纱支 int)
create table 化验室布组(本厂编号 int,客户 int,色号 int,布类 int)
go
create trigger my_trig on 化验室纱组 for insert ,update ,delete
as
if not exists(select 1 from inserted)
  delete 化验室布组 from deleted t where 化验室布组.本厂编号 = t.本厂编号
else if not exists(select 1 from deleted)
  insert into 化验室布组(本厂编号 ,客户 ,色号) select 本厂编号 ,客户 ,色号 from inse


相关问答:

linux + oracle用XP访问不了

我安装一台redhat linux5+oracle 10g的服务器,笔记本(XP系统)安装了oracle 10g客户端,结果老是出12560的错误,请高手指点一二,

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dpor ......

php 中查询oracle date 类型数据的问题?

日前用oci函数查询oracle数据时出现个问题,就是在查询到date类型的数据时,使用pl/sql 查询oracle库中的数据显示是
2009-9-29 12:12:12
但是通过语句select * from tablename 查询,使用oci_fetch_array() ......

求教 查看SqlServer执行过的存储过程状态

在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......

【求助】SqlServer查看数据库的对象

在SqlServer中如何查看数据库的对象,比如我想查看数据中有哪些表,视图,函数,过程。
(通过sql语句来查,而不是通过企业管理器看)

ps:主要是因为我有两个数据库,库结构很相似,我想对比一下,找出对 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号