• 详解SQLServer 存储过程


    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 ] 
        ] [ ,n ] 
    [ WITH <procedure_option> [ ,n ]
    [ FOR REPLICATION ] 
    AS { <sql_statement> [;][ n ] | <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

    转载自:http://www.aspnetjia.com

  • 相关阅读:
    iphone4 系统ios4电话截获
    获取iPhone通话记录(需越狱)
    漫谈SRM主数据迁移及同步(3. 供应商主数据篇)
    对于收货确认的取消,参考此2个Notes 1292032 & 1300861
    漫谈SRM主数据迁移及同步(4. 工厂主数据篇)
    漫谈SRM主数据迁移及同步(2.2 物料主数据篇)
    漫谈SRM主数据迁移及同步(2.1 物料主数据篇)
    采购需求者离职后,其他用户无法操作其创建的购物车
    漫谈SRM主数据迁移及同步(1.2 基本设置篇)
    漫谈SRM主数据迁移及同步(1.1 基本设置篇)
  • 原文地址:https://www.cnblogs.com/aspnetjia/p/5234022.html
Copyright © 2020-2023  润新知