zoukankan      html  css  js  c++  java
  • sqlserver的存储过程

    一、存储过程概念

    存储过程时一系列T-sql的集合,除了能进行正常的增删改查,还有逻辑控制,并可以设置输入、输出参数,返回值,可以接受多个结果集。

    存储过程的优点:

    1、运行速度快

      存储过程是一系列T-sql经过编译后保存的数据库中,相比于多条sql每次编译运行,能直接提升数据库中的运行速度。

      其次,对存储过程的的调用只是调用一次名称,同样可以减少网络通信耗时,并减少网络通道的占用。

    2、便于修改

      如果不修改存储过程的名称和参数,修改存储过程的逻辑,并不会导致代码调用失败。项目源代码无需更改。

    3、保证数据安全

      通过权限的设置,让某些用户通过存储过程来调用用户无法操作的数据,保证数据安全。

    二、存储过程语法

    CREATE PROC procedure_name [ ; number ]
      [ { @parameter data_type } [ = default ]  [ OUTPUT ]]

      [ ,...n ]

    [ WITH  [RECOMPILE] [ENCRYPTION] ]

    AS
    begin

    end

    参数介绍:

    procedure_name  :存储过程名称,不能现有的数据库对象冲突,如表名、存储过程名等

    ;number  :一个整数值,表示同一个存储过程名下的分组,如:procedure_name;1 procedure_name;2 procedure_name;3可以通过名称删除一组存储过程。

    @parameter  :参数名,必须加@

    data_type  :参数类型

    =default  :默认值

    output  :输出参数标识,加上之后就代表是输出参数

    recompile  :不会缓存该改存储过程,在运行时,重新编译

    encryption  :加密

    as  :之后的存储过程的的逻辑,begin开始end结束。

    存储过程实例:

    use custom
    go
    if exists (select * from sys.objects where name='get_emp_count')
    begin
    drop procedure get_emp_count
    end
    go
    
    create procedure dbo.get_emp_count
            @age int,
            @count int output
            
    as
    begin
    --为on时结果中不返回受影响的行数,提高查询效率,只在改批处理域中生效。
    set nocount on;
    select @count=count(*) from emp where age=@age
    select * from emp
    
    end
    go

    create procedure语句必须是批处理的第一句,所以必须加go。

    调用:

    --测试
    declare @result_count int
    --调用带返回参数的存储过程时,参数后面要加output
    --execute get_emp_count @age=22,@count=@result_count output
    execute get_emp_count 22,@result_count output
    --select @result_count as count
    select count=@result_count
    
    --打印该变量
    print @result_count
    go
    就算这个世道烂成一堆粪坑,那也不是你吃屎的理由
  • 相关阅读:
    [BTS][收藏]如何通过BizTalk Server 2006 Exam (70235)
    [BTS]BizTalk调用WebService
    [WWF]我的第一个Workflow项目
    谈谈如何学习BizTalk
    [BTS06]BizTalk2006 SDK阅读笔记(五) 管道Pipeline
    [BTS06]BizTalk2006 SDK阅读笔记(三) 工作过程
    如何实现模块间通信[DNN 3.2.2]
    印度是如何做软件开发的
    实施ERP100问
    C#分析数据库结构,使用XSL模板自动生成代码
  • 原文地址:https://www.cnblogs.com/whalesea/p/13280514.html
Copyright © 2011-2022 走看看