存储过程


usesmtdata
go
/*删除过程*/

dropprocedureusp_search_user
go


/*创建过程*/
createprocedureusp_search_user
@usernamevarchar(32)
as
select@username=@username+'%'
selecttop10usernameas用户名,passwordas密码
fromnormaluser
whereusernamelike@username
orderby用户名DESC
GO
/*修改过程ALTER*/
ALTERprocedureusp_search_user
@usernamevarchar(32)
as
select@username=@username+'%'
selecttop10usernameas用户名,passwordas密码
fromnormaluser
whereusernamelike@username
orderby用户名DESC

一、先介绍一下什么是存储过程

存储过程是利用SQLServer所提供的Tranact-SQL语言所编写的程序。Tranact-SQL语言是SQLServer提供专为设计数据库应用程序的语言,它是应用程序和SQLServer数据库间的主要程序式设计界面。它好比Oracle数据库系统中的Pro-SQL和Informix的数据库系统能够中的Informix-4GL语言一样。这类语言主要提供以下功能,让用户可以设计出符合引用需求的程序:
1)、变量说明
2)、ANSI兼容的SQL命令(如Select,Update….)
3)、一般流程控制命令(if…else…、while….)
4)、内部函数


二、存储过程的书写格


CREATEPROCEDURE[拥有者.]存储过程名[;程序编号]
[(参数#1,…参数#1024)]
[WITH
{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}
]
[FORREPLICATION]
AS程序行

其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数
(SQLServer7.0以上版本),参数的使用方法如下:

@参数名数据类型[VARYING][=内定值][OUTPUT]

每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQLServer所支持的数据类型都可使用。
[=内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。

例子:
CREATEPROCEDUREorder_tot_amt@o_idint,@p_totintoutputAS
SELECT@p_tot=sum(Unitprice*Quantity)
FROMorderdetails
WHEREordered=@o_id

例子说明:
该例子是建立一个简单的存储过程order_tot_amt,这个存储过程根据用户输入的定单ID号码(@o_id),由定单明细表(orderdetails)中计算该定单销售总额[单价(Unitprice)*数量(Quantity)],这一金额通过@p_tot这一参数输出给调用这一存储过程的程序


三、在SQLServer中执行存储过程


在SQLServer的查询分析器中,输入以下代码:
declare@tot_amtint
executeorder_tot_amt1,@tot_amtoutput
select@tot_amt

以上代码是执行order_tot_amt这一存储过程,以计算出定单编号为1的定单销售金额,我们定义@tot_amt为输出参数,用来承接我们所要的结果
阅读更多
个人分类: 数据库
想对作者说点什么? 我来说一句

5个不同的系统中的存储过程

2010年04月22日 9KB 下载

存储过程循坏

2017年10月30日 714B 下载

sql存储过程的创建

2009年11月13日 482B 下载

破解存储过程破解存储过程

2009年02月17日 5KB 下载

存储过程存储过程存储过程

2011年04月07日 132KB 下载

调用存储过程(java)

2008年07月21日 2KB 下载

MSSQL存储过程基础

2008年10月28日 41KB 下载

存储过程db2存储过程

2009年07月05日 216KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭