繁体中文
设为首页
加入收藏
当前位置:数据库技术首页 >> Sql Server教程 >> 在MSSql中的存储过程简介

在MSSql中的存储过程简介

2007-03-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:  利用SQL的语言可以编写对于数据库访问的存储过程,其语法如下: CREATE PROC[EDURE] procedure_name [;number] [ {@parameter data_type} [VARYING] [= default] [OUTPUT] ] [,...n] [WITH { RECOMPILE | EN...
关键字:存储 过程 简介 MSSql

  利用SQL的语言可以编写对于数据库访问的存储过程,其语法如下:

CREATE PROC[EDURE] procedure_name [;number]

[

{@parameter data_type} [VARYING] [= default] [OUTPUT]

]

[,...n]

[WITH

{

RECOMPILE

| ENCRYPTION

| RECOMPILE, ENCRYPTION

}

]

[FOR REPLICATION]

AS

sql_statement [...n]

  [ ]内的内容是可选项,而()内的内容是必选项,

  例: 若用户想建立一个删除表tmp中的记录的存储过程Select_delete可写为:

Create Proc select_del As

Delete tmp

  例:用户想查询tmp表中某年的数据的存储过程

create proc select_query @year int as

select * from tmp where year=@year

在这里@year是存储过程的参数

  例:该存储过程是从某结点n开始找到最上层的父亲结点,这种经常用到的过程可以由存储过程来担当,在网页中重复使用达到共享。

空:表示该结点为顶层结点

fjdid(父结点编号)

结点n 非空:表示该结点的父亲结点号

dwmc(单位名称)

CREATE proc search_dwmc @dwidold int,@dwmcresult varchar(100) output

as

declare @stop int

declare @result varchar(80)

declare @dwmc varchar(80)

declare @dwid int

set nocount on

set @stop=1

set @dwmc=""

select @dwmc=dwmc,@dwid=convert(int,fjdid) from jtdw where id=@dwidold

set @result=rtrim(@dwmc)

if @dwid=0

set @stop=0

while (@stop=1) and (@dwid0)

begin

set @dwidold=@dwid

select @dwmc=dwmc,@dwid=convert(int,fjdid) from jtdw where id=@dwidold

if @@rowcount=0

set @dwmc=""

else

set @result=@dwmc+@result

if (@dwid=0) or (@@rowcount=0)

set @stop=0

else

continue

end

set @dwmcresult=rtrim(@result)

  充分合理地利用存储过程,可以提高服务器吞吐能力,笔者利用存储过程来从近20个表中获取数据组合成一个通用的表,产生近2万条记录,而所需时间约7秒钟,如果这种操作借助于较合理的动态网页可以将服务器开发提高到一个高度,充分利用存储过程,可以减轻网页设计带来的繁重处理,而使所编写的代码得到共享和合理的利用,并将代码藏于服务器的数据库内部,使得一些技术得到的保密,这也是存储过程的一大特色,希望读者能从中得到启益。

责任编辑:admin
相关文章