zoukankan      html  css  js  c++  java
  • 存储过程与自定义函数

    存储过程说白了就是一堆 SQL 的合并。
    中间加了点逻辑控制。
    处理比较复杂的业务时比较实用。
    运行效率提高
    优势:
    1.只在创造时进行编译,
      以后每次存储过程都不用在编译,
      而sql语句每执行一次就编译一次,
      所以可提高数据库执行速度
    2.数据库进行复杂操作时,
      可将此复杂操作用存储过程封装起来
      与事务处理结合一起使用
    3.存储过程可以重复使用,
      减少开发量
    4.安全性高,
      可设定只有某个用户才具有使用权

    create procedure PeoProc2
    @pname nvarchar(30)
    as;
    begin
    select work.job
    from work,people
    where people.id=work.id and people.name=@pname
    end
    go
    execute PeoProc2 N'宋江';

    自定义函数
    create function FUNC_UserTab_1
    (
        @pname nvarchar(30)
    )
    returns table
    as
    return (select work.job
            from work,people
            where people.id=work.id and people.name=@pname
            )

    select * from dbo.FUNC_UserTab_1('吴用')

    一、自定义函数:
    1. 可以返回表变量
    2. 限制颇多,
        包括不能使用output参数;
        不能用临时表;
        函数内部的操作不能影响到外部环境;
        不能update,delete,数据库表;
    3. 必须return 一个标量值或表变量

    自定义函数一般用在复用度高,功能简单单一,争对性强的地方。

    二、存储过程
    1. 不能返回表变量
    2. 限制少,
       可以执行对数据库表的操作,
       可以返回数据集
    3. 可以return一个标量值,
        也可以省略return

    存储过程一般用在实现复杂的功能,数据操纵方面。

  • 相关阅读:
    getopt( )和 getopt_long( )
    关于跳跃表 转
    进程控制块的存放和当前进程的确定
    BUAA_OO_2020_Unit1 Summary
    熟悉常用的Linux操作
    编译原理
    词法分析
    组合数据类型练习
    实验一 词法分析实验
    简化版C语言文法
  • 原文地址:https://www.cnblogs.com/qq424441031/p/6526549.html
Copyright © 2011-2022 走看看