sqlserver中的存储过程,何为存储过程呢?

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL
语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
.

存储过程的优点:

①重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
②减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
③安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。 简单讲:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量
4.安全性高,可设定只有某些用户才具有对指定存储过程的使用权 有一点需要注意的是,一些网上盛传的所谓的存储过程要比sql语句执行更快的说法,实际上是个误解,并没有根据,包括微软内部的人也不认可这一点,所以不能作为正式的优点,希望大家能够认识到这一点。

缺点:

1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。
2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。
3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。
4:
如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。

下面就是举例sqlserver中的存储过程的几个案例:

--创建一个存储过程,查询全部的员工信息
CREATE PROCEDURE finAll
ASBEGINSELECT * FROM emp
END
EXECUTE finAll--根据员工名称模糊查询员工信息
DROP PROCEDURE findByname
CREATE PROCEDURE findByname@name VARCHAR(50)       --传入一个参数,姓名
AS
BEGINSELECT * FROM emp WHERE ename like '%'+@name+'%'
END--调用存储过程
EXECUTE findByname '张'--创建一个带输出参数的存储过程
CREATE PROCEDURE out_emp@name VARCHAR(50) OUTPUT,@age INT OUTPUT,@DATE DATE OUTPUT
AS
BEGIN SELECT @name = ename,@age = eage,@DATE = eDATE FROM emp
ENDDECLARE @_name VARCHAR(50);
DECLARE @_age INT ;
DECLARE @_DATE DATE;EXECUTE out_emp  @_name OUTPUT ,@_age OUTPUT ,@_DATE OUTPUT;
PRINT @_name
PRINT @_age
PRINT @_DATE  --根据名称模糊查询员工信息(使用if)
CREATE PROCEDURE findByNameAsIf@_name varchar(50)ASBEGIN IF @_name is null or @_name =''BEGINSELECT * FROM emp;ENDELSEBEGINSELECT * FROM emp WHERE ename LIKE '%'+@_name+'%';END
END--调用存储过程
EXECUTE findByNameAsIf '张'
EXECUTE findByNameAsIf ''

sqlserver中常用的几个存储过程相关推荐

  1. SQLServer中常用的分页查询语句

    前言 在SqlServer中,分页查询是经常用到的查询语句,一个好的分页查询语句,不仅能将代码省略,还能提高运行效率,下面我们来探讨一下SQLServer中的分页查询语句. 具体的业务逻辑是这样的,我 ...

  2. sqlserver中创建包含事务的存储过程

    什么是事务 事务时包含1条或多条语句的逻辑单元.事务中的语句是一个整体,要么一起提交,要么一起撤销.事务在提交前可以回滚,一旦提交就不能撤销修改了,是永久性的修改. 为什么使用事务 可以例举生活中的例 ...

  3. 把sqlserver中存储过程改写到oracle中

    一同学叫我帮忙改存储过程sqlserver----->oralce数据中: sqlserver中存储过程: SET QUOTED_IDENTIFIER ON     GO  SET ANSI_N ...

  4. SqlServer中存储过程中将Exec的执行结果赋值给变量输出

    原文 SqlServer中存储过程中将Exec的执行结果赋值给变量输出 背景: 遇到这样一种情况:动态向存储过程中传入表名和表的某些属性(这里用到的是主键ID),然后利用这两个变量查出一条数据的某些字 ...

  5. 如何在sqlserver中写存储过程

    original link http://www.codeproject.com/Articles/126898/Sql-Server-How-to-write-a-Stored-procedure- ...

  6. mysql中常用函数与存储过程的创建

    mysql中常用函数与存储过程的创建 常用函数汇总 数学函数 字符串函数 日期和时间函数 条件判断函数 系统函数 加密函数 其他函数 自定义函数 自定义变量的声明和赋值 基本语法 实例 存储过程 事务 ...

  7. Sqlserver中一直在用又经常被忽略的知识点一

    已经有快2个月没有更新博客了,实在是因为最近发生了太多的事情,辞了工作,在湘雅医院待了一个多月,然后又新换了工作...... 在平时的工作中,Sqlserver中许多知识点是经常用到的,但是有时候我们 ...

  8. SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数

    SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 1 USE [tempdb] 2 GO 3 4 CREATE TABLE # ...

  9. XML 在SQLServer中的使用

    SQL Server对于XML支持的核心在于XML数据的格式,这种数据类型可以将XML的数据存储于数据库的对象中,比如variables, columns, and parameters.当你用XML ...

最新文章

  1. 未来的数据中心(三)
  2. DAGNN:有向无环图神经网络
  3. golang 文件(文件打开,文件写入,文件读取,文件删除)的基本操作
  4. 【转载】ASP.NET应用程序与页面生命周期
  5. Google,真的要离我们而去吗?
  6. 移动数据网络类型是nr_便携式移动网络的快速搭建方法
  7. LeetCode 234. Palindrome Linked List
  8. 24 种设计模式之 观察者模式
  9. linux sh指令自动验证密码,shell脚本自动输入用户名和密码更新服务器上的git项目...
  10. JQuery读取txt文件
  11. 部署3PAR VSP5.0.9.2监控3PAR实时邮件告警状态
  12. 计算机用老毛桃u盘备份系统,老毛桃u盘启动盘ghost备份系统操作步骤
  13. 乱世王者服务器维护,乱世王者微信534区仰不愧天开服时间表_乱世王者新区开服预告_第一手游网手游开服表...
  14. 一个555振荡电路及其解释
  15. urchin.js作用以及urchin.js注释
  16. 晶振及其内部电路详解
  17. md文件的正确打开方式
  18. 二手物品网上交易系统设计与开发 毕业设计毕设参考
  19. “希希敬敬对”团队作业-敏捷冲刺2
  20. git 提交部分修改代码(非全部代码)

热门文章

  1. java 计算i 出现的次数_JAVA算法:按照给定的段落统计单词出现次数(JAVA代码)...
  2. 数据结构选择题(c语言)
  3. 2019-03-14-算法-进化(两个数组的交集 II)
  4. [2021.1.27多校省选模拟10]染色(min-max容斥/二项式反演)
  5. 【BZOJ3512】DZY Loves Math IV(杜教筛)
  6. 【LOJ6033】棋盘游戏【二分图博弈】
  7. AGC023D - Go Home
  8. 【学习笔记】平等博弈及常见的公平博弈类型
  9. 洛谷P1173:[NOI2016] 网格(tarjan、离散化)
  10. CF1146F: Leaf Partition(树形dp)