zoukankan      html  css  js  c++  java
  • 数据库之存储过程Procedure

    数据库之存储过程

    一、概述
    SQLserver中视图通过简单的select查询来解决复杂的查询,但是视图不能提供业务逻辑功能,而存储过程可以办到。
    二、什么是存储过程
    存储过程procedure是一组为了完成特定功能的SQL语句的集合,经编译后存储存储在数据库中,用户通过制定存储过程的名称big给出参数来执行。
     
    存储过程中可以在包含逻辑控制语句和数据操纵语句,它可以接受参数,输出参数,返回单个或者多个结果以及返回值。
     
    由于存储过程在创建时即在数据库服务器上进行了编译变存储在了数据库中,所以存储过程运行要比单个的SQL语句要快。同时由于在调用时时只需提供存储过程的名字和必要额参数信息,所以在一定的程度上也可以减少网络流量、简单网络负担。
     
    存储过程的优点:
    1.模块化编程
    2.性能:更快的执行 减少网络流量
    3.安全
     
    4.创建一个存储过程
     
    CREATE PROCEDURE myStroredProcedure AS
     
    ....
     
    OR
     
    CREATE PROCEDURE mYsTOREDpROCEDURE @{pARAMETER  Name} {data type} AS
     
    eg:
    CREATE  PROCEDURE  LatestTasks @Count int AS
    SET ROWCOUNT @Count
    SELECT TaskName AS LatestTasks,DataCreated
    FROM Tasks
    ORDER BY DateCreated DESC
     
    5、执行存储过程
    EXECUTE LatestTasks
    EXEC LatestTasks
     
    EXEC LatestTasks @Count=5
    6、修改存储过程
    若修改存储过程,需要换掉CREATE使用ALTER
     
    ALTER PROCEDURE LatestTasks @Count in AS
    SET ROWCOUNT @Count
    SELECT TaskName AS "Latest Tasks",Descripition , DateCreated
    FROM Tasks
    ORDER BY DateCreated DESC

      

    三、SQLserver系统存储过程
    SQLserver中包含了大量的系统存储过程,以帮助数据库关系任务。
    通过GUI执行的任务可以通过系统存储过程来完成。
    有些东西可以用系统存储过程,包括:
    配置安全账户
    建立链接服务器
    创建一个数据库维护计划
    创建全文检索目录
    添加远程登录
    配置复制
    设置调度作业
    ...
    SQL Server命名约定
    系统存储过程节点以sp_开始
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    mysql int类型 int(11) 和int(2)区别
    mysql 用户 登陆 权限相关
    【转】ext4+delalloc造成单次写延迟增加的分析
    write 系统调用耗时长的原因
    【转】通过blktrace, debugfs分析磁盘IO
    win7 wifi热点
    【SystemTap】 Linux下安装使用SystemTap源码安装SystemTap
    pdflush进程介绍与优化【转】
    How to find per-process I/O statistics on Linux
    oom_killer
  • 原文地址:https://www.cnblogs.com/lsb123/p/11534487.html
Copyright © 2011-2022 走看看