• SQL Server中对存储过程的理解


      数据库的存储过程理解为,处理数据的子程序,写起来像函数,用起来像函数,在SQL Server中存储过程分为两大类,系统的和自定义的,系统的都放在master系统数据库中,自定义就是自己去写的,用DDL的相关语句即可,创建存储过程,就像函数一样,可以有参,也可以无参,无参的时候写起来很简单:

    CREATE PROC hello
    AS
        BEGIN
            /*....*/
        END
    GO

    执行的时候也是,只需要在自定义存储过程执行即可

    EXEC hello

    有参的时候写法也不陌生:

    CREATE PROC hello_1 @n1 int
    AS
        BEGIN
            //.....
        END
    GO
    EXEC hello_1 '123'
    /*或者 EXEC hello_1 @n2='123'*/

    在执行的时候如果是批处理的第一条语句则可以将EXEC省略

    在编写的时候,会有许多不同的需求,存储过程时没有返回值的,我们需要返回相关信息的时候就希望类似于C/C++一样传入指针或者引用,在SQL Server中实现的方式是在变量之后加上OUTPUT。

    对参数进行修饰的属性还有很多:

    VARYING 只适用于输出参数为Cursor变量,该参数由存储过程动态构造
    参数=值 表示默认值
    READONLY 修饰不能在存储过程中更新或者修改的参数,类似于C/C++的const
    RECOMPILE  执行存储过程时重新编译

    注意事项:

      自定义存储过程只能在当前数据库中创建,临时存储过程除外,临时存储过程在系统数据库tempdb创建

      存储过程创建成功之后,过程名在sysobjects中,语句文本存放在syscomment中

      自动执行存储过程是SQL Server在启动过程中自动执行的一些存储过程,这些存储过程都不能有参数的。

  • 相关阅读:
    网上找的面试题-之一
    python里的Join函数
    【转载51CTO】Linux中引号那些事儿
    【面试编程题】巧妙排序:排序只有1,2,3三个元素的数组,不能统计1,2,3的个数。
    [转载]mininet的安装和使用
    Open vSwitch源码阅读【转】及自己的理解【稍后更新】
    7、8月份安排 进度条
    请不要忽视基础小细节
    【编程之美】2.20 程序理解问题
    GDOI2017爆炸记
  • 原文地址:https://www.cnblogs.com/lumaoxin/p/6918403.html
Copyright © 2020-2023  润新知