• 存儲過程的基本語句


    建立存储过程体
           存储过程逻辑驻留在存储过程体中。一个存储过程体中可以包含任意条Transact SQL语句。下面的Transact SQL语句不能在任何存储过程体中出现:
           · CREATE DEFAULT
           · CREATE TRIGGER
           · CREATE PROCEDURE
           · CREATE VIEW
           · CREATE RULE
    1、  局部变量
    局部变量保持存储过程中间值。当一个值在存储过程中需要多次,或者某个查询的结果需要在随后的查询中使用时,需要使用局部变量。在这些情形下,值被存储在局部变量中,并可用于将来的使用。本地变量的名称以“@”符号开头。变量的名称可以包含字符和数值。局部变量在使用前需要进行类型声明。对局部变量进行赋值需要使用SELECT语句。SELECT可以从一个表中检索出值并将其赋给某个变量,也可以给变量赋一个常量值。一个简单的SELECT语句可以给多个局部变量赋值。
    例如:
    DECLARE @var1 integer, @var2 varchar(20)
    SELECT @var1 = 32,
               @var2 = ‘MyAge’
    如果从SELECT查询中没有返回任何数据,而SELECT又要将数据的值赋予局部变量,则该局部变量的值将不会发生改变。
    2、  条件词句
    存储过程中提供的条件语句包括:
    · IF……ELSE语句。
    · WHILE语句。
    1)  IF……ELSE语句。在该语句中包含三个部分:布尔运算表达式,IF语句块和ELSE语句块。语法如下:
    IF (boolen_expr)
      {statements}
    ELSE
      {statements}
    在IF或ELSE语句块中可以有多条语句,这种情形下,需要语句BEGIN和END来标志语句块。
    2)  WHILE语句。WHILE语句用于处理直到某个条件为TRUE前重复执行的语句。语法如下:
    WHILE (boolen_expr)
      BEGIN
      statement(s)
    BREAK
    Statement(s)
    CONTINUE
                  END
                BEGIN和END语句标志循环体。BREAK语句结束循环的执行(即走到END语句之后)。CONTINUE语句将控制处理过程回到循环的开始处(即BEGIN语句的右边)。
                注意:如果有两个或多个WHILE循环被嵌套,则内部的BREAK退出的是次外层的循环。内部循环结束之后的所有语句在内部循环执行之后才能继续执行。

    3、  GOTO语句
    在存储过程的执行中,语句是顺序执行的。GOTO语句则是用来打破这种语句执行的顺序,它立即跳到某条语句上执行,而这条语句往往不紧跟在前一语句之后。GOTO语句与一个标志(Label)一起使用,该标志用来标识一条语句。
    例如:
    USE pubs
    GO

    DECLARE @num int
    SELECT
    IF @num = 0
           GOTO Err
    ELSE
           BEGIN
           PRINT ‘authors found’
           SELECT * FROM authors
           GOTO Last
           END
    Err: PRINT ‘no authors found’
    Last: PRINT ‘Finish execution’
    GO
    4、  RETURN语句
    RETURN语句用于无条件的退出存储过程。RETURN之后的任何语句都不再执行。RETURN语句可以给调用语句返回一个值,但不能返回NULL值。SQL Server经常为存储过程返回一个状态值。如果成功地执行,则返回一个0,如果出现了错误,则返回一个为负数的错误码。
    存储过程返回的错误码

    说        明

    说        明

    0
    过程执行成功
    -8
    发生了非致命的内部问题

    -1
    漏掉了对象
    -9
    达到了系统极限

    -2
    发生了数据类型错误
    -10
    发生了致命的内部不一致错误

    -3
    该处理被选择成了死锁的牺牲者
    -11
    发生了致命的内部不一致错误

    -4
    发生了权限错误
    -12
    表或索引被破坏

    -5
    发生了语法错误
    -13
    数据库被破坏

    -6
    发生了混杂的用户错误
    -14
    发生了硬件错误

    -7
    资源错误,如空间不够等

    轉自:http://www.cnblogs.com/wupingjia/archive/2006/08/05/468852.html

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    vue-cli
    respond.js
    dataTable调用接口渲染数据,没有数据,报错
    jq自定义鼠标右键菜单
    datatables通过ajax调用渲染数据,怎么根据数据给td添加class
    【C++ Primer 第11章 练习答案】2. 关联容器概述
    【Leetcode】1. Two Sum
    【C++】拷贝构造函数(深拷贝,浅拷贝)详解
    【图的遍历】广度优先遍历(DFS)、深度优先遍历(BFS)及其应用
    【C++ Primer 第十三章】4. 拷贝控制示例
  • 原文地址:https://www.cnblogs.com/Athrun/p/556360.html
Copyright © 2020-2023  润新知