一基本编程语句
(1)定义变量 declare @变量名 数据类型
(2)赋值 set @变量名=值
select @变量名 =值
(3)取值打印 print @变量名
select @变量名
例:
注:print 打印在消息框中
(4)分支语句
if 条件
begin
条件语句
end
else
begin
条件语句
end
例:
(5)循环语句
初始条件
while 循环条件
begin
循环体
end
例:
二 存储过程
create proc 存储名
参数 数据类型
as
return 值
调用 exec
例:
三、触发器
create or alter trigger 别名
on 触发的表名
for 触发的动作 或 instead of 触发的动作 或 after 触发的动作
as 触发的内容
例:
Oracle:
CREATE OR REPLACE TRIGGER 触发器名
操作的前后节点(before|after|instead of) 操作的动作(insert|Update|Delete) OF 列名
ON 表名
FOR EACH ROW--遍历表的每一句
DECLARE--定义变量关键字
变量1 数据类型;
变量2 数据类型;
BEGIN--开始
执行代码
END;--结束
eg:
/*CREATE OR REPLACE TRIGGER materialUpdate
BEFORE INSERT OR UPDATE OF FMaOverCtrlRate_LT
ON T_BD_MATERIALPRODUCE
FOR EACH ROW
DECLARE
IScambo NUMBER (20);
ISmaterial NUMBER (20);
BEGIN
SELECT t1.FUSEORGID, FCategoryID
INTO IScambo, ISmaterial
FROM T_BD_MATERIAL t1
LEFT JOIN t_BD_MaterialBase t2 ON t1.Fmaterialid = t2.Fmaterialid
WHERE t1.Fmaterialid = :new.Fmaterialid;
IF IScambo = 2231159 AND ISmaterial = 237
THEN
:new.FMaOverCtrlRate_LT := 5;
END IF;
END;
/
GO*/
级联删除:在两个表有外键约束时删除外键表数据需要先删除外键关联主表数据,再删除外表数据
create trigger 触发器名
on 要删除的外表名
instead of Delete
as
declare 变量名(存放删除数据) 数据类型
select 变量名=关联的外键列名 from deleted
Delete from 主键表名 where 关联条件;
Delete from 外键表名 where 关联条件;