博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
存储过程入门
阅读量:5110 次
发布时间:2019-06-13

本文共 1606 字,大约阅读时间需要 5 分钟。

存储过程入门

一、储存过程优点

存储过程是一组予编译的SQL语句

它的优点:

1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次

2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要
3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。
4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

 

二、储存过程是什么

存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。

 

三、储存过程最最最最最简单实例

我们的student表如下:

3.1这是如何创建储存过程:

CREATE PROCEDURE dbo.testProcedure_AX

AS
select * from student

 

注:dbo.testProcedure_AX是你创建的存储过程名,可以改为:AXzhz等,别跟关键字冲突就行了.AS下面就是一条SQL语句,不会写SQL语句的请回避.

上面储存过程作用就是你创建了一个名为dbo.testProcedure_AX的储存过程,这个储存过程的作用是select * from student。

注:这里是不会出现结果的,不像直接使用 select * from student直接查询,因为这里只是创建了一个储存过程,并没有使用,使用看下面。

 

3.2下面是如何使用储存过程:

 

这就OK了!!!!

 

 四、存储过程带参数实例

我们的student表如下:

 4.1这是如何创建带参数的储存过程:

CREATE procedure testProcedure_search4

@sid int,
@sname nchar(10)
as
select *
from
student
where sid=@sid and sname=@sname

注:

上面储存过程作用是查询指定id和指定name的学生的情况

 

  4.2这是如何使用带参数的储存过程:

 

 

五、存储过程带参数带返回实例

我们的student表如下:

 

 5.1这是如何创建带参数带返回的储存过程:

CREATE procedure testProcedure_search

@sid int,
@sname nchar(10),
@returnVal int output
as
begin
if exists(select *
from
student
where sid=@sid and sname=@sname)
set @returnVal=0
else
set @returnVal=1
end
return
GO

注:

上面储存过程作用是查询指定id和指定name的学生的情况,查到就返回1,否则返回0.

@开头的都是我们定义的参数。也是我们使用储存过程的时候要传入的参数

 

  5.2这是如何使用带参数带返回的储存过程:

 

 

 

如果想进一步了解储存过程,下面的网站可以:

sql存储过程简单教程 - jayleke - 博客园  http://www.cnblogs.com/jayleke/archive/2010/07/10/1774746.html

sql存储过程几个简单例子 - _eve - 博客园  http://www.cnblogs.com/pureEve/p/6525460.html

当然,推荐去看书,找任何一本介绍SQL Server数据库的书都是OK的。

 

 

 

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/7609950.html

你可能感兴趣的文章
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>
第七次作业
查看>>
SpringBoot项目打包
查看>>
Linux操作系统 和 Windows操作系统 的区别
查看>>
《QQ欢乐斗地主》山寨版
查看>>
文件流的使用以及序列化和反序列化的方法使用
查看>>
Android-多线程AsyncTask
查看>>
第一个Spring冲刺周期团队进展报告
查看>>
红黑树 c++ 实现
查看>>
Android 获取网络链接类型
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>