sql server 2005 存储过程

---------------------------------------------------------  准备工作  -----------------------------------------------------------

变量

变量分为两种

第一种:局部变量

  局部变量是:@

  声明: DECLARE @HELLO CHAR(10)

  赋值:  1.  SET @HELLO = 'world'

        2.  SELECT @HELLO = Expression

          如果Expression返回多个值那么最后一个值赋值给@HELLO 

          如果Expression无返回值那么 @HELLO 保持不变

          如果Expression不是有返回值的查询结果,那么 @HELLO赋值为空

第二种:全局变量

  全局变量是:@@

        @@MAX_CONNECTIONS  允许连接的最大数量

        @@PROCID  返回当前存储过程的ID

        @@REMSERVER  返回注册记录中显示的远程数据服务器的名称

        @@SERVERNAME  返回允许SQL Server的本地服务器名称

        @@SERVICENAME  返回SQL Server运行时的注册键名称

        @@SPID  返回服务器处理标识符

        @@TRANCOUNT  返回当前连接的有效事物数

        @@VERSION  返回当前SQL Server服务器的日期,版本和处理器类型

存储过程是数据库对象

CREATE PROCEDURE 同其他CREATE语句一样不能够同其他语句在同一个批处理一起使用。

---------------------------------------------------------  正文  -----------------------------------------------------------

存储过程内容

1. 创建无参存储过程

  CREATE PROC name

  AS

  sql_statement

  示例:

    USE shop  --shop 数据库的名字

    GO

    CREATE PROC select_GoodsTypes

    AS

    SELECT 类别号 

    FROM 商品表

    GO

2. 执行无参存储过程

  如果存储过程是批处理的第一条语句,那么可以省略EXECUTE语句。

  示例:

    USE shop

    GO

    EXECUTE select_GoodsTypes

    GO

3. 删除无参存储过程

  示例:

    USE shop

    GO

    DROP PROCEDURE select_GoodsTypes

    GO

 

4. 创建和执行含参数存储过程

  语法:

    CREATE PROC procedure_name

    [@parameter data_type]

    [@parameter data_type]  OUTPUT

 

5.使用输入参数

  输入参数有两种方法,一种是按照位置传递,一种是按照参数名传递。

  示例:

    EXEC procedure_name '通信产品'

    EXEC procedure_name @productName='通信产品'

 6.结果返回

  结果返回有两种方式,一种是使用OUTPUT关键字,另一种是使用RETURN关键字。

  OUTPUT关键字:

    示例:

        CREATE PROC proName

        @para INT OUTPUT

        AS

        SELECT @para = AVG(价格)

        FROM 商品表

        --调用

        DECLARE @pr INT

        EXECUTE proName @pr OUTPUT

  RETURN关键字:

    示例:

        CREATE PROC proName

        AS

        DECARE @result INT

        SELECT @result = AVG(价格)

        FROM 商品表

        RETURN @result 

        --调用

        DECLARE @res INT

        EXECUTE @res=proName 

        

posted @ 2012-07-25 12:50  疯狂鼠标垫  阅读(270)  评论(0编辑  收藏  举报