博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server之存储过程基础知识
阅读量:6947 次
发布时间:2019-06-27

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

什么是存储过程呢?

存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 
通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。

那为什么要用存储过程呢?

1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权

 

那存储过程怎么用呢?

以下通过表t_Admin 来了解存储过程,因为是要了解存储过程的简单用法,所以所有例子均很简单。

--无参数存储过程--搜索t_Admin表中的所有信息create proc SearchAdminas --不可以省略begin -- begin 与 end 是一对,不可以只写其中一个,但可以都不写    select AdminID,AdminName,AdminPWD from t_Adminendgo--执行exec SearchAdmingo--有参数存储过程--根据AdminID搜索t_Admin对应的信息create proc SearchAdminByID@AdminID intas    select AdminID,AdminName,AdminPWD from t_Admin where AdminID = @AdminIDgoexec SearchAdminByID 1go--上面是在外部给变量赋值,也可以在内部给变量赋值create proc SearchAdminByID2@AdminID int=2as    Select AdminID,AdminName,AdminPWD from t_Admin where AdminID = @AdminIDgo--执行 不给值时 会搜索2的数据exec SearchAdminByID2--执行 给值则搜索给定值的数据exec SearchAdminByID2 1--把变量的内容输出,使用outputcreate proc SearchOutPut@AdminName varchar(20),@IsRight int outputas    if exists (select AdminID,AdminName,AdminPWD from t_Admin where AdminName = @AdminName)        set @IsRight = 1    else        set @IsRight = 0go--执行declare @IsRight int exec SearchOutPut 'Gyg01', @IsRight outputselect @IsRight as 数值----以上都是全局变量,接下来了解局部变量--------------------------------------------------------------局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内部,离开该函数后再使用这种变量是非法的。--局部变量的定义:必须先用Declare命令定以后才可以使用,declare{@变量名 数据类型}--局部变量的赋值方法:set{@变量名=表达式}或者select{@变量名=表达式}--局部变量的显示:select @变量名create proc SearchAdmin1as     declare @AdminName varchar(100)    set @AdminName='gyg01'    select AdminID,AdminName,AdminPWD from t_Admin where AdminName = @AdminNamegoexec SearchAdmin1--那如果是要把局部变量的数据显示出来怎么办呢?create proc SearchAdmin2as     declare @AdminName varchar(100)    set @AdminName=(select AdminName from t_Admin where AdminID = 1)    select @AdminNamegoexec SearchAdmin2

 

转载于:https://www.cnblogs.com/gygtech/p/8735252.html

你可能感兴趣的文章
Spring中的Contexts
查看>>
奇葩说第三季被删减版下载,奇葩说被禁资源下载
查看>>
jQuery实现slideRightShow()方法
查看>>
反编译.o到.cpp
查看>>
[LeetCode]Remove Duplicates from Sorted Array
查看>>
qtp试用期30天已经过了就无法使用,解决办法
查看>>
winform文本框怎么实现html的placeholder效果
查看>>
认识CSS样式
查看>>
[转]SQLITE3 C语言接口 API 函数简介
查看>>
Delphi XE5中使用jar包
查看>>
Python3的tcp socket接收不定长数据包接收到的数据不全。
查看>>
b2b
查看>>
第三周Java学习总结
查看>>
OGRE的安装和编译【转+改】
查看>>
获取管理员组用户
查看>>
Mysql—(2)—
查看>>
简历的分布式
查看>>
LeetCode:Rotate Array
查看>>
jquery pagination.js 分页
查看>>
DOM对象与jquery对象
查看>>