日期:2011-05-02 15:22:00 来源:本站整理
在MSSql中的存储历程简介[MSSQL防范]
本文“在MSSql中的存储历程简介[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 (@dwid<>0)
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秒钟,假如这种操作借助于较公道的动态网页可以将服务器开辟提高到一个高度,充分操纵存储历程,可以减轻网页计划带来的沉重处理,而使所编写的代码得到同享和公道的操纵,并将代码藏于服务器的数据库内部,使得一些技术得到的保密,这也是存储历程的一大特点,但愿读者能从中得到启益
以上是“在MSSql中的存储历程简介[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论