首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>SQL server>资讯:详解SQLServer 存储过程

详解SQLServer 存储过程

www.jz123.cn  2009-07-07   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

  Sql Server的存储过程是一个被命名的存储在服务器上的Transacation-Sql语句集合,是封装重复性工作的一种方法,它支持用户声明的变量、条件执行和其他强大的编程功能。

  存储过程相对于其他的数据库访问方法有以下的优点:

  (1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

  (2)提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。

  (3)减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

  (4)安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

  存储过程一共分为了三类:用户定义的存储过程、扩展存储过程以及系统存储过程。

  其中,用户定义的存储过程又分为Transaction-SQL和CLR两种类型。

  Transaction-SQL 存储过程是指保存的Transaction-SQL语句集合,可以接受和返回用户提供的参数。

  CLR存储过程是指对.Net Framework公共语言运行时(CLR)方法的引用,可以接受和返回用户提供的参数。他们在.Net Framework程序集中是作为类的公共静态方法实现的。(本文就不作介绍了)

以下为引用的内容:

CREATE { PROC | PROCEDURE } [schema_name.] procedure_name [ ; number ] 
    
[ { @parameter [ type_schema_name. ] data_type } 
        
[ VARYING ] [ = default ] [ [ OUT [ PUT ] 
    ] 
[ ,] 
[ WITH <procedure_option> [ ,]
[ FOR REPLICATION ] 
AS { <sql_statement> [;][ ] | <method_specifier> }
[;]
<procedure_option> ::= 
    
[ ENCRYPTION ]
    
[ RECOMPILE ]
    
[ EXECUTE_AS_Clause ]

<sql_statement> ::= 
[ BEGIN ] statements [ END ] }

<method_specifier> ::=
EXTERNAL NAME assembly_name.class_name.method_name

  创建存储过程的语句如下:

  [schema_name]: 代表的是存储过程所属的架构的名称

  例如:

  Create Schema yangyang8848

  Go

  Create Proc yangyang8848.AllGoods

  As Select * From Master_Goods

  Go

  执行:Exec AllGoods 发生错误。

  执行:Exec yangyang8848.AllGoods 正确执行。

  [;Number]: 用于对同名过程进行分组的可选整数。使用一个 DROP PROCEDURE 语句可将这些分组过程一起删除。

  例如:

  Create Proc S1 ;1

  AS

  Select * From Master_Goods

  Go

  Create Proc S1 ;2

  As

  Select * From Master_Location

  Go

上一篇:教你创建动态MSSQL数据库表 下一篇:Microsoft SQL Server SA权限安全

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图