精华内容
下载资源
问答
  • SQL Server存储过程

    千次阅读 2018-12-18 18:48:59
    SQL Server存储过程 定义: 用户通过制定存储过程的名称并给出参数来执行它; SQL Server为了实现特定任务,而将一些多次调用的固定操作语句编写成程序段,这些程序段存储在服务器上,由数据库服务器来调用; 命名...

    SQL Server存储过程

    定义:

    • 用户通过制定存储过程的名称并给出参数来执行它;
    • SQL Server为了实现特定任务,而将一些多次调用的固定操作语句编写成程序段,这些程序段存储在服务器上,由数据库服务器来调用;
    • 命名前缀:proc_名称,proc是procedure(过程)的简写;

    优缺点

    优点

    • 重复使用,减少数据库开发人员的工作量;
    • 封装复杂的数据库操作,简化操作流程;
    • 减少网络流量,调用过程只需传递名称与参数;
    • 安全性,防止SQL注入式攻击,同时可设定用户对指定存储过程的执行权限;
    • 误解:比SQL语句执行快(未被认证)

    缺点

    • 调试麻烦;
    • 移植问题;
    • 重新编译问题,当引用关系的对象发生改变时,受影响的存储过程、包将需要被重新编译;
    • 不支持面向对象设计,无法采用面向对象的方式将逻辑业务进行封装,甚至形成通用的可支持服务的业务逻辑框架;

    分类

    系统存储过程

    • 存储在系统数据库master中;
    • 用来从系统表中获取信息,为系统管理员提供帮助,为用户查看数据库提供方便;
    • 存储过程位于数据库服务器中,以sp_开头,系统存储郭恒定义在系统定义和用户定义的数据库中,调用时,不必在存储过程中加数据库限定名;
    • 一些系统存储过程只能由系统管理员使用,而有些系统存储过程通过授权可以被其它用户使用;

    用户存储过程(自定义存储过程)

    • 存储在tempdb数据库中;
    • 用户使用T_SQL语句编写的,为了实现某一特定业务需求,在数据库中编写的T_SQL语句集合,自定义存储过程可以接受输入参数、向客户端返回结果和信息,返回输出参数等;
    • 临时存储过程:
      • 全局的临时存储过程,存储过程名前加上“##”;
      • 局部临时存储过程,存储过程名前加上“#”;

    扩展存储过程

    • 以在SQL Server环境外执行的动态链接(DLL文件)来实现,可以加载到SQL Server实例运行的地址空间来执行;
    • 扩展存储过程以前缀“xp_”来标识;

    创建存储过程

    无参存储过程

    • Proc与Procedure相同;
    • 调用存储过程:exec
    • 创建存储过程
    -- 判断存储过程是否存在
    if (exists (select * from sys.objects where name = 'getAllBooks'))
        Drop Procedure getAllBooks
    go
        -- 创建存储过程
        Create Procedure getAllBooks 
    as
        -- SQL语句
        Select * From books
    
    • 修改存储过程
    Alter Procedure getAllBooks
    as
        -- 修改后SQL语句
        Select book_name From books
    
    • 删除存储过程
    -- 删除存储过程
    drop Procedure getAllBooks
    
    • 重命名存储过程
    sp_rename getAllBooks,proc_get_allBooks
    

    有参存储过程

    • 参数分类
      • 输入参数,用于向存储过程传入值;
      • 输出参数,用于调用存储过程后,返回结果;
    • 值传递和引用传递
      • 基本数据类型赋值属于值传递;引用类型之间赋值属于引用传递;
      • 值传递传递的是变量值;引用传递传递的事对象的引用地址;
      • 值传递后,两个变量改变的是各自的值;引用传递后,两个引用改变的是同一个对象的状态;
    • 单个参数存储过程
    if(exists (Select * From sys.objects Where name = 'searchBooks'))
        Drop Procedure searchBooks
    go 
    Create Proc searchBooks(
        -- 参数声明(@参数名 类型 [=默认值] )
        @bookID int
        )
    as 
        Select * From books 
        Where book_id = @bookID
    
    -- 调用存储过程
    exec searchBooks 1;
    
    • 多个参数存储过程(两个参数)
    if(exists (Select * From sys.objects Where name = 'searchBooks'))
        Drop Procedure searchBooks
    go 
    Create Proc searchBooks(
        @bookID int ,
        @auth nvarchar(50)
        )
    as 
        Select * From books 
        Where book_id = @bookID
        And book_auth = @auth
    -- 调用存储过程
    exec searchBooks 1 , '孔子'
    
    • 带返回值的存储过程
    if (exists (Select * From sys.objects Where name = 'getBookId'))
        Drop Procedure getBookId
    go 
    Create Procedure getBookId(
        @bookauth nvarchar(20), --无默认值
        @bookId int output --无默认值
    )
    as 
        Select @bookId = book_Id From books
        Where book_auth = @bookauth
    
    --调用存储过程
    declare @Id int 
    exec getBookId '金庸',@Id output
    select @id as booksId
    
    • 参数带通配符的存储过程(参数有默认值)
    if (exists (select * from sys.objects where name = 'charBooks'))
        drop proc charBooks
    go
    create proc charBooks(
        @bookAuth varchar(20)='金%',--默认值
        @bookName varchar(20)='%'--默认值
    )
    as 
        select * from books where book_auth like @bookAuth and book_name like @bookName;
    
    --执行存储过程
    exec  charBooks  '孔%','论%'; 
    
    展开全文
  • SQLSERVER存储过程

    2014-02-16 16:22:38
    SQLSERVER存储过程使用说明书 sqlserver存储过程入门例子加讲解
    展开全文
  • sql Server存储过程

    2016-04-28 18:26:48
    sql Server存储过程 今天是执行计划的第一天,没日学习一点新东西,记录下自己的心得体会。 1.sql Server数据库连接语句: 一般会有下面的四种情况: a.一般的远程访问的写成这样: Data Source=IP ;Initial...

    今天是执行计划的第一天,没日学习一点新东西,记录下自己的心得体会。
    1.sql Server数据库连接语句:
    一般会有下面的四种情况:
    a.一般的远程访问的写成这样:
    Data Source=IP ;Initial Catalog=数据库名 ;UserID= 用户名 ;Password=密码
    b.本地访问的写成这样:
    Data Source=(local);Initial Catalog=数据库名 ;UserID= 用户名 ;Password=密码
    c.如果是本地的,通过windows组件验证的(也就是没有用户名,密码的)写成这样:
    Data Source=(local);Initial Catalog=数据库名 ;Integrated Security=True
    d.如果不是默认的实例,假如实例名是SQLEXPRESS,写成这样:
    Data Source=(local)/SQLEXPRESS ;Initial Catalog=数据库名 ;Integrated Security=True
    备注:如果你不知道什么是本地和远程,或者不知道验证方式,那就建议你去找一本sql server入门学习的书籍。
    2.存储过程
    我们知道数据库是存储数据的,那么不管是数据表还是说视图,还是说存储过程,我们都可以理解为时在数据库中存储的数据,当我们需要用到它时,我们就必须要连接上数据库,然后我们就可以使用数据库中的“数据“。那么既然说到存储过程,必不可少的要提到函数的复用性,sql server中函数常用的有两种:表值函数和标量值函数;
    a.这两种函数主要区别就是:表值函数只能返回一个表,标量值函数可以返回基类型(用于树形数据表比较多)。
    b.存储过程:一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
    注:后续我会做一个简单的c#调用存储过程的小demo。

    展开全文
  • sqlserver存储过程

    千次阅读 2019-05-06 15:58:24
    一、存储过程 1.预先存储好的sql程序,保存在sqlserver中,通过名称和参数执行。 2.存储过程中可以包含:insert语句,update语句,delete语句,select语句,逻辑控制语句以及变量。 二、存储过程的优点: 1.执行速度...

    一、存储过程
    1.预先存储好的sql程序,保存在sqlserver中,通过名称和参数执行。
    2.存储过程中可以包含:insert语句,update语句,delete语句,select语句,逻辑控制语句以及变量。
    二、存储过程的优点:
    1.执行速度更快
    2.允许模块化程序设计
    3.提高系统安全性
    4.减少网络流量
    三、存储过程的分类:
    1.系统存储过程
    (1)一般以sp_开头,由sqlserver创建、管理和使用
    (2)存放在resource数据库中
    (3)类似于C#的类库方法
    2.扩展存储过程
    (1)通常以xp_开头,使用编程语言创建的外部存储过程
    3.用户自定义存储过程
    (1)由用户自己创建的存储过程。
    四、常用的系统存储过程
    1.sp_databases:服务器上的所有数据库
    2.sp_renamedb:重命名数据库
    3.sp_tables:当前环境下可查询的对象列表
    4.sp_cloumns:某个表的列
    5.sp_help:某个表的所有信息
    6.sp_helpconstraint:某个表的约束
    7.sp_helpindex:某个表的索引
    8.sp_password:添加或者修改登录账户的密码
    五、定义存储过程的语法:
    create proc 存储过程名
    @参数1 参数类型 ,
    @参数2 参数类型=默认值 output
    as
    sql语句
    go
    六、存储过程的参数
    1.参数是可选的
    2.参数分为输入参数和输出参数
    3.输入参数允许有默认值
    七、调用存储过程:
    1.无参数:exec 存储过程名
    2.有默认值参数:exec 存储过程名 default
    3.有参数:exec 存储过程名 参数1,参数2
    4.有参数的另一种方法:exec 存储过程名 变量名 = 参数值

    展开全文
  • SQL Server 存储过程

    千次阅读 2016-07-21 23:18:22
    本章内容简介: • 存储过程的定义以及何时需要使用一个存储过程 • 如何创建、修改和删除...现在,看一下SQLServer代码的主要种类,不过在深入研究这一主题之前,需要了解的是——其种类数目可能低于也可能高于您所
  • SQLServer 存储过程

    千次阅读 2016-09-08 23:30:47
    SQLServer默认会在完成存储过程时自动返回一个0值。 语法:RETURN [] 注意:返回的必须是整数。是无条件地从存储过程中退出的。这是指五路运行到存储过程的那个位置,在调用RETURN 语句之后将不会执行任何一行...
  • sqlserver 存储过程的使用

    万次阅读 2019-12-29 22:12:58
    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。...
  • 可以将SQL Server存储过程转为oracle存储过程的工具
  • SQL SERVER存储过程

    千次阅读 2004-08-14 11:35:00
    在.NET开发中,自动产生SQL SERVER存储过程:如对表操作的ADD / DELETE / UPDATE /GetSingleRow我推荐的方法:ADVANCED T-SQL:Automate the Generation of Stored Procedures for Your Databasehttp://msdn.microsoft...
  • SQL Server存储过程实例

    2019-07-01 13:27:35
    SQL Server存储过程 SQL Server中的存储过程是由一个或者多个T-SQL语句组成的一个集合。在数据库编程过程中经常会使用到存储过程,常用的程序代码段通常被创建成存储过程,一次创建多次调用。相比于SQL语句,存储...
  • Mybatis调用sqlserver存储过程

    千次阅读 2019-03-12 16:56:06
    Mybatis调用sqlserver存储过程 项目结构 数据表结构 编写sqlserver存储过程 无参 带参 修改mybatis中xml文件 编写测试类 执行存储过程 1. 2. 3.执行完得出的结果 ...
  • sql server存储过程的优点 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般 SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对...
  • SQL Server存储过程的类型包括: 系统存储过程: 由系统提供的存储过程,主要存储在master数据库中并以sp_为前缀,它从系统表中获取信息,从而为系统管理员管理SQL Server提供支持 用户定义存储过程: 由用户...
  • SQLSERVER存储过程及调用详解 SQL Server 存储过程
  • SQL Server存储过程返回参数

    千次阅读 2017-11-01 09:43:31
    -- 测试 SQL Server 存储过程的输出机制
  • 推荐给大家一款 sql server 存储过程解密工具,很好用,亲测。支持sql server 2014,其他sql server版本,没有测试。 dbForge SQL Decryptor,很强大的一款sql server存储过程解密工具 ...
  • sqlserver存储过程和触发器

    千次阅读 2019-01-17 11:57:53
    sqlserver存储过程和触发器 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。 存储过程的特点,触发器和存储过程的区别,触发器的优点...
  • SQL Server 存储过程 存储过程:一组为了完成特定功能的SQL语句集,编译之后存储在数据库中。和函数类似,但功能大于函数 存储过程可包含程序流,逻辑,以及对数据库的查询,可以接受参数,输出参数,返回单个或多个...
  • java调用sqlserver存储过程问题,通过JAVA调用sqlserver存储过程 大概代码如下: proc = srcConnection.prepareCall("{call getTaskByTaskId(?,?,?,?,?)}"); ...(省略) proc.execute(); System.out.println("执行...
  • SQLDirect调用SQL Server存储过程示例
  • SQLServer存储过程举例简介

    千次阅读 2017-11-09 20:47:24
    SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的...
  • sqlserver存储过程入门

    千次阅读 2017-11-20 09:13:42
    SQLSERVER存储过程基本语法复制代码 一、定义变量 –简单赋值 declare @a int set @a=5 print @a --使用select语句赋值 declare @user1 nvarchar(50) select @user1='张三' print @user1 declare @user2 ...
  • SQL Server 存储过程详解

    千次阅读 2016-03-25 10:44:35
    SQL Server 存储过程详解 存储过程的优缺点  ◆优点:  执行速度更快。存储过程只在创造时进行编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程执行速度更快。  存储过程用于处理...
  • Hibernate 调用sqlserver存储过程

    千次阅读 2013-09-30 09:49:33
    Hibernate 调用sqlserver存储过程   建表person: 调用sqlserver存储过程" title="Hibernate 调用sqlserver存储过程" style="margin:0px; padding:0px; border:0px; list-style:none"> 存储过程: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,151
精华内容 10,060
关键字:

sqlserver存储过程