`

SQL中存储过程和函数的区别

阅读更多
本文部分内容转自http://www.cnblogs.com/lengbingshy/archive/2010/02/25/1673476.html

本质上没区别。只是函数有如:只能返回一个变量的限制。而存储过程可以返回多个。而函数是可以嵌入在sql中使用的,可以在select中调用,而存储过程不行。执行的本质都一样。
     函数限制比较多,比如不能用临时表,只能用表变量.还有一些函数都不可用等等.而存储过程的限制相对就比较少
      1.    一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
      2.    对于存储过程来说可以返回参数,而函数只能返回值或者表对象。
      3.    存储过程一般是作为一个独立的部分来执行(EXEC执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
      4.    当存储过程和函数被执行的时候,SQL Manager会到procedure cache中去取相应的查询语句,如果在procedure cache里没有相应的查询语句,SQL Manager就会对存储过程和函数进行编译。
      Procedure cache中保存的是执行计划 (execution plan) ,当编译好之后就执行procedure cache中的execution plan,之后SQL SERVER会根据每个execution plan的实际情况来考虑是否要在cache中保存这个plan,评判的标准一个是这个execution plan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。
分享到:
评论

相关推荐

    存储过程和函数的区别

    ### 存储过程和函数的区别 #### 一、概述 在数据库编程中,存储过程(Stored Procedure)与函数(Function)都是预编译并存储在数据库服务器上的代码块,能够提高应用程序性能,简化复杂的数据库操作,并增强数据...

    sqlserver 存储过程 函数 常用知识点

    在SQL Server中,存储过程和函数是数据库管理与开发中的重要组成部分,它们为数据库操作提供了高效、可重用和安全的途径。以下是关于SQL Server存储过程和函数的一些常用知识点: 1. **存储过程(Stored Procedures...

    原创sql存储过程函数范例

    原创sql存储过程函数范例,一是为了自己方便查找,今天到公司因为没有我保存的一些范例,一个简单的例子写了半个小时,如果有范例直接套几分钟肯定搞定,所以索性上传到CSDN上,何时何地都能找到我的范例了。...

    实验4存储过程和函数实验

    适合sqlserver数据库初学者,实验四存储过程和函数实验

    常用SQL工具存储过程与函数.rar

    本压缩包“常用SQL工具存储过程与函数.rar”可能包含了一些常见SQL工具中用于管理和操作数据库存储过程与函数的相关资料,如日志文件(spTool_Log.LDF)和数据文件(spTool_Data.MDF)。 存储过程是预编译的SQL语句...

    sqlserver 存储过程,函数,视图实例

    在SQL Server数据库管理系统中,存储过程、函数和视图是三个重要的数据库对象,它们在数据库设计和数据操作中起着核心作用。以下是对这些概念的详细说明: **存储过程(Stored Procedure)** 存储过程是一组预编译...

    SqlServer存储过程及调试指南

    1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作数据库中的重要对象,对于设计良好的数据库应用程序...

    存储过程与函数的区别

    在`oracle存储过程,函数,动态SQL使用.docx`文件中,可能包含了关于如何在Oracle环境下编写、调用和管理这些对象的详细教程。动态SQL(Dynamic SQL)是另一个关键概念,它允许在运行时构建和执行SQL语句,这在处理不...

    sql 存储过程常用函数及游标用法

    本文将深入探讨SQL存储过程中的常用函数、游标用法以及日期函数。 一、字符函数 字符函数主要用于对字符串进行各种操作。例如: 1. `LEN(str)`:返回字符串`str`的长度。 2. `SUBSTRING(str, start, length)`:从...

    Oracle学习开发常用的SQL和存储过程学习(内含SQL面试题目和存储过程,函数面试题目).zip

    在Oracle中,存储过程还可以包含PL/SQL块,这是一种结合了SQL和过程化编程的语言。资料中的存储过程部分将涵盖创建、调用、修改和删除存储过程的方法,以及如何处理异常和控制流程。 函数是存储过程的一种特殊形式...

    SQL存储过程、函数Demo

    在“SQL存储过程、函数Demo”中,你可以找到实际的存储过程示例,学习如何创建、调用和管理这些过程。 接着,我们来探讨SQL函数。函数与存储过程类似,也是预先定义的一段SQL代码,但函数必须有返回值,可以作为...

    SQL存储过程,视图,函数,触发解密

    SQL存储过程、视图、函数和触发器是SQL中的核心概念,它们在数据库设计和应用程序开发中扮演着至关重要的角色。下面将详细介绍这些概念及其重要性。 1. **SQL存储过程**: 存储过程是一组预编译的SQL语句,存储在...

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    定义完存储过程后,使用“delimiter”关键字更改语句结束符,以便能够正确地定义存储过程或函数中的多条语句。 2. 创建函数 函数与存储过程类似,也是一种子程序。不同之处在于函数必须返回一个值。报告中并没有...

    编写安全的SQL Server扩展存储过程

    在SQL Server中,扩展存储过程(Extended Stored Procedures)是一种增强数据库功能的方法,它允许开发者创建自己的函数、存储过程和数据类型,这些功能是通过Windows动态链接库(DLL)实现的。编写安全的SQL Server...

    Sql Server 存储过程的导出导入.doc

    本文主要介绍如何在SQL Server中导出和导入存储过程。 首先,导出存储过程的步骤如下: 1. 打开SQL Server Management Studio(简称SSMS),这是一个用于管理SQL Server数据库的强大工具。 2. 在对象资源管理器中...

    最方便的sql server存储过程、函数解密工具

    笔者找到的功能最强大、操作最简单、使用最可靠的数据库解密工具,用于解密的SQL Server2000、2005等版本的存储过程、函数、触发器和视图。 执行连接到数据库后,左边直接列出数据库清单以及每个数据库内的存储过程...

    SQL server存储过程习题,SQL触发器习题.rar

    1. **定义**:SQL存储过程是一组预先编译的SQL语句,它封装了特定的功能,可以按需调用,提高了代码的重用性和执行效率。 2. **分类**:分为系统存储过程(由SQL Server提供)和用户自定义存储过程(由开发者创建)...

    oracle pl/sql 存储过程和函数与触发器

    存储过程、函数和触发器是PL/SQL中的核心概念,它们在数据库管理中扮演着至关重要的角色。 一、存储过程 存储过程是一组预编译的SQL语句和PL/SQL代码,可以视为数据库中的可执行对象。它们允许开发者封装一系列的...

    存储过程和函数

    根据提供的文件信息,本文将详细解析数据库中的存储过程与函数,并深入探讨自主事务(autonomous_transaction)的概念及其在PL/SQL中的应用。 ### 一、存储过程 #### 1. 创建存储过程 存储过程是一种存储在数据库...

    在VB6.0中调用SQL Server的存储过程.pdf

    在VB6.0中调用SQL Server的存储过程是VB开发者经常遇到的问题,本文将详细介绍如何在VB6.0中调用SQL Server的存储过程,并对存储过程的优点和使用方法进行了详细的解释。 首先,存储过程是一种封装方法,用于重复...

Global site tag (gtag.js) - Google Analytics