--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
相关问答:
我安装一台redhat linux5+oracle 10g的服务器,笔记本(XP系统)安装了oracle 10g客户端,结果老是出12560的错误,请高手指点一二,
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dpor ......
日前用oci函数查询oracle数据时出现个问题,就是在查询到date类型的数据时,使用pl/sql 查询oracle库中的数据显示是
2009-9-29 12:12:12
但是通过语句select * from tablename 查询,使用oci_fetch_array() ......
在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......
在SqlServer中如何查看数据库的对象,比如我想查看数据中有哪些表,视图,函数,过程。
(通过sql语句来查,而不是通过企业管理器看)
ps:主要是因为我有两个数据库,库结构很相似,我想对比一下,找出对 ......