存储过程:就像函数一样的
会保存在数据库中--》可编程性 --》 存储过程

创建存储过程:
create proc JiaFa
--需要的参数
@a int,
@b int
as
--存储过程的内容
declare @c int;
set @c = @a + @b;
return @c;
go

public int JiaFa(int a, int b)
{
int c = a+b;
return c;
}
--执行完毕后全部选中,执行创建

执行存储过程:
exec JiaFa 3,5;

declare @f int;
exec @f = JiaFa 3,5;
print @f;

例:

--根据用户传入的参数查询汽车表符合该条件的汽车数量
create proc ChaXun
@n varchar(20)
as
declare @num int
select @num = count(*) from car where name like '%'+@n+'%'
return @num
go

declare @m int
exec @m = ChaXun '奥迪'
print @m

触发器:
是一个特殊的存储过程;
通过增删改的动作来触发执行,没有参数,没有返回值;

create trigger Insert_Student --命名规范
on student --针对于哪一个表
for insert --针对于哪一个动作来触发

-- onclick = "show()"

as
触发执行的代码段
go

----------------------------------------------------
create trigger Delete_Info
on info
instead of delete
as
declare @c varchar(20)
select @c = code from deleted

delete from work where infocode=@c
delete from family where infocode=@c
delete from info where code=@c
go

create trigger Delete_Nation
on nation
for delete
as

go

1.for的意思是在动作执行之后触发
2.instead of delete 的意思是删除之前引发,可以理解为替代,写了这个之后,写的执行代码就没有用了,就被触发器的代码覆盖了

触发器常用的为级联删除:
create trigger delete_student
on student
instead of delete
as
--如果要删除student表数据,那么需要级联删除
declare @sno varchar(20);
set @sno = sno from deleted --deleted固定格式,为删除执行所能删除的数据,并没有执行删除,而是把他们显示出来,在这获得要删除的数据的sno,然后先删除其他表中此sno的数据
delete from score where sno = @sno;
delete from student where sno = @sno;
go

SQL 存储和触发器的更多相关文章

  1. Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器

    ---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表. ---查询语句创建表 create table emp a ...

  2. SQL数据库—<8>触发器

    触发器:一.什么是触发器?    一段SQL代码,挂到某个表的某个增.删.改的操作上.    当这个表执行相应的操作时,就会触发这段相应的SQL代码.触发器与存储过程的区别:1.存储过程是独立于表存在 ...

  3. NewSQL——优化的SQL存储引擎(TokuDB, MemSQL)+?

    NewSQL 是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性. NewSQL 是指这样一类新式的关系型数据库 ...

  4. PL/SQL&存储过程||存储函数&触发器

    plsql 有点:交互式  非过程化   数据操纵能力强   自动导航语句简单   调试简单   想率高 声明类型的方式 1.基本类型 2.引用变量 3.记录型变量 基本格式 declare 声明 b ...

  5. 数往知来SQL SERVER 视图 触发器 <九>

    SQL server学习_视图 1.视图 视图其实是一张虚拟表,他是一张表的部分数据或多张表的综合数据(视图就是把SQL语句封装起来) 可以看做是一个结果集,但是不是一个结果集 视图不具备存储数据的能 ...

  6. Oracle Day09 存储与触发器

    1.存储 存储过程.存储函数:指存储在数据库中供所有用户程序调用的子程序. --创建存储过程(procedure) --用create procedure 命令建立存储过程. 格式: create o ...

  7. pl/sql学习(5): 触发器trigger/事务和锁

    (一)触发器简单介绍 触发器是由数据库的特定时间来触发的, 特定事件主要包括以下几种类型: (1)DML: insert, update,delete 增删改 (2)DDL: create, alte ...

  8. oracle存储过程和存储函数&触发器

    oracle存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程,存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值 ...

  9. SQL SERVER TRIGGER 触发器

    1.触发器简介 触发器是一种特殊的存储过程,它的执行不是由程序调用,也不是手动执行,而是由事件来触发.触发器是当对某一个表进行操作.例如:update.insert.delete这些操作的时候,系统会 ...

随机推荐

  1. Android之Fragment学习笔记②(Fragment生命周期)

    一. Fragment生命周期图                                  二.Fragment生命周期方法介绍 Fragment的生命周期和activity生命周期很像,其生 ...

  2. perl常用代码

    字符串联结和重复操作符   联接: .  重复:x  联接且赋值(类似+=): .=例:  $newstring = "potato" . "head";  $ ...

  3. 把Java程序打包成jar文件包并执行

    1.首先要确认自己写的程序有没有报错. 2.第一次我写的是Web Project到现在,我一直没有执行成功,所以最好创建的是java Project 打包步骤: 1.在项目上,右键,选择Export. ...

  4. DataTable .Load 方法 (IDataReader)

    DataTable .Load 方法 (IDataReader)用来从DataReader对象中填充DataTable所需的数据 public DataTable GetAllInventory() ...

  5. freebsd 禁用root登录ssh并给普通用户登录权限

    转自http://www.linux521.com/2009/system/200904/2021.html http://www.myhack58.com/Article/48/67/2011/30 ...

  6. SVN提交注意点

    一.提交之前先更新 1.         SVN更新的原则是要随时更新,随时提交.当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交. 2.         如果在修改的期间别人也更改了sv ...

  7. Java实验报告二:Java面向对象程序设计

    Java实验报告二:Java面向对象程序设计                                                                               ...

  8. php-- Linux图形界面与字符界面切换

    转自:http://blog.163.com/wang_ly2442/blog/static/9494340720128355054551/ 1. 启动时进入字符界面,后来想切换到图形界面:使用sta ...

  9. ADB not responding. If you'd like to retry, then please manually kill "adb.exe" and click 'Restart'

    ADB not responding. If you'd like to retry, then please manually kill "adb.exe" and click ...

  10. iOS视图控制对象生命周期

    iOS视图控制对象生命周期-init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 ...