【3-16】数据库基本编程语句,存储过程,触发器
一基本编程语句
(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 关联条件;
转载于:https://www.cnblogs.com/hclyz/p/6560180.html
【3-16】数据库基本编程语句,存储过程,触发器相关推荐
- SQL2008--SQL语句-存储过程-触发器-事务处理-基本语法-函数
环境 SQL2008 1.存储过程建立 库-可编程性-存储过程-右击"存储过程"-点击"新建存储过程" SET ANSI_NULLS ON GO SET QUO ...
- Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器
---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表.---查询语句创建表 create table emp as ...
- !!!. 数据库的编程(ADO) --- 三种sql语句执行的不同
Description: 一. 数据库的编程(ADO) 要用ADO连接数据的头文件中加入 #import "c:\Program Files\Common Files\Sy ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- 数据库——SQL语句(触发器)
目录 1 AFTER触发器 2 INSTEAD OF触发器 1 AFTER触发器 [USE <数据库名> GO] CREATE TRIGGER <触发器名> ON <表名 ...
- 数据库基础-储存过程和触发器
储存过程和触发器 储存过程 什么是储存过程? 储存过程的优点 储存过程的类型 储存过程的创建与执行 储存过程的创建 储存过程的执行 储存过程的修改 储存过程的删除 触发器 什么是触发器 触发器的类型 ...
- SQL server学习(五)T-SQL编程之存储过程
周五了,祝大家周末愉快. 之前一直在写SQL server的分享,今天再来个T-SQL编程中的存储过程. 存储过程 存储过程(procedure)类似于C语言中的函数,用来执行管理任务或应用复杂的业务 ...
- 数据库常用操作语句总结
数据库常用操作语句总结 一.基础 1.select 语句 2.select distinct 语句 3.where 子句 4.and 和 or 运算符 5.order by 语句 6.insert i ...
- SQL Server 【附】创建商品管理数据库、学生选课数据库的SQL语句
附:(创建"商品管理数据库"的SQL语句) --建立"商品管理数据库"数据库-- create database 商品管理数据库 on(name='商品管理数据 ...
最新文章
- 微信小程序界面跳转方法
- python学习--服务期间通讯和mysql数据库操作
- html5声频audio和视频video
- 分布式系统关注点:无状态
- Webbrowers控件的小技巧
- SpringBoot中使用thymeleaf时ajax请求不能回显消息
- 工业用微型计算机(20)-指令系统(15)
- 18_clickhouse副本同步与高可用功能验证,分布式表与集群配置,数据副本与复制表,ZooKeeper整合,创建复制表,副本同步机制,数据原子写入与去重,负载平衡策略,案例(学习笔记)
- (十二)C3P0连接池使用教程
- 《Python Cookbook 3rd》笔记(3.10):矩阵与线性代数运算
- springboot添加webmagic_SpringBoot+Solr + webmagic JD商品爬取数据,放入solr中做搜索
- mysql必背_必背的mysql语句.doc
- swagger里面显示的示例参数格式错误
- 宝塔pure-ftpd文件管理不显示目录|文件夹打不开
- CF991B Getting an A
- 电机计算机仿真,电机调速系统的计算机仿真
- 关于阿狸狗破戒大师自动安装完cadence17.4后licence不可用问题
- cmd xcopy 拷贝文件夹_如何使用Xcopy复制文件夹及其子文件夹?
- Android开发常用的模拟器
- apache ActiveMQ反序列化漏洞(CVE-2015-5254)复现
热门文章
- 用css sprites(图像拼合技术)优化css加快网站速度[转]
- MySQL之数据库多表查询
- 萌新的Python练习菜鸟100例(十八)求s=a+aa+aaa+aaaa+aa...a的值
- c#泛型的使用性能测试
- 报告:上周比特币基金流出9800万美元,ETH、ADA等投资需求上升
- 矿业公司Aurum对其房东提起法律诉讼,要求收回矿机
- MASK LBP代币拍卖共募集近4000万美元
- SAP License:SAP S/4HANA就是答案
- npm,umi,yarn
- php后台+前端开发过程整理