- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQLServer 2005存储过程的基本操作
第十讲 存储过程 复习 索引是以表列为基础建立的数据库对象,记录了索引列在数据表中的物理存储位置,实现了表中数据的逻辑排序。 聚集索引(唯一索引)表中数据行的物理存储顺序与索引顺序完全相同,而非聚集索引表中的数据行不按非聚集索引键的顺序排序和存储。 使用索引的意义: 可以提高查询速度; 可以保证数据记录的唯一性; 减少查询中分组和排序的时间; 加速表与表之间的连接。 建立索引的原则 适合建立索引的列: 主键列自动建立聚集索引。 外键列应建立索引。 在经常查询的字段上最好建立索引。 order by 子句中使用的列。 不适合建立索引的列: 对于那些查询中很少涉及的列、重复值比较多的列不要建索引。 对于定义为text,Image和Bit数据类型的列上不要建立索引。 存储过程 问题: 有没有一种好的办法,不用为每个系部都创建一个视图来查看该系部的信息,而是通过一种通用的方法来实现呢? 存储过程 教学目标: 1、明确存储过程的概念及作用 2、学会存储过程的基本操作 3、学会存储过程的基本操作(创建和执行) 存储过程 1、存储过程的概念 存储过程是一种数据库对象,是为了实现某个特定任务,将一组预编译的SQL语句以一个存储单元的形式存储在服务器上,供用户调用执行。存储过程在第一次执行时进行编译,然后将编译好的代码保存在高速缓存中以便以后调用,这样可以提高代码的执行效率。一个过程一旦被创建,就可以通过该过程的名称或者必要的参数进行调用。 存储过程同其它编程语言中的过程相似,有如下特点: 接收输入参数并以输出参数的形式将多个值返回至调用过程或批处理。 包含执行数据库操作(包括调用其它过程)的编程语句。 向调用过程或批处理返回状态值,以表明成功或失败以及失败的原因。 存储过程 存储过程的优点: 安全机制:只给用户访问存储过程的权限,而不授予用户访问表 和视图的权限。 改良了执行性能:在第一次执行时进行编译,将编译好的代码保存在高速缓存中以便以后调用,以后执行无需编译。这样可以提高代码的执行效率。 减少网络流量:存储过程存在于服务器上,调用时,只需传递执行存储过程的执行命令和返回结果。 模块化的程序设计:增强了代码的可重用性,提高了开发效率。 简化复杂语句:可以在单个存储过程中执行一系列SQL语句;可以在一个的存储过程内引用其它的存储过程,可以简化一系列复杂语句。 存储过程 2、存储过程的类型 用户定义的存储过程:用户定义的存储过程是用户根据需要,为完成某一特定功能,在自己的普通数据库中创建的存储过程。 系统存储过程:系统存储过程存储在master数据库中,以sp_为前缀,主要用来从系统表中获取信息,为系统管理员管理SQL Server提供帮助,为用户查看数据库对象提供方便。 扩展存储过程:扩展存储过程以xp_为前缀,它是关系数据库引擎的开放式数据服务层的一部分,可以使用户在动态链接库(DLL)文件所包含的函数中实现逻辑,从而扩展了T-SQL的功能,并且可以象调用T-SQL过程那样从T-SQL语句调用这些函数。 存储过程的操作 简单存储过程的操作包括: 创建存储过程 执行存储过程 修改存储过程 删除存储过程 存储过程的基本操作---创建 创建存储过程时,需要注意下列事项: 1、只能在当前数据库中创建存储过程。 2、数据库的所有者可以创建存储过程,也可以授权其他用户创建存储过程。 3、存储过程是数据库对象,其名称必须遵守标识符命名规则。 4、不能将 CREATE PROCEDURE 语句与其它 SQL 语句组合到单个批处理中。 5、创建存储过程时,应指定所有输入参数和向调用过程或批处理返回的输出参数、执行数据库操作的编程语句和返回至调用过程或批处理以表明成功或失败的状态值。 创建不带参数的存储过程 使用SQL语句创建不带参数的存储过程语法格式如下: CREATE PROC [ EDURE ] 存储过程名[;number] [WITH recompile| encryption| recompile, encryption] AS SQL语句 说明: 存储过程名必须符合标识符规则,且对于数据库及其所有者必须唯一。 number:该参数是可选的整数,用来对同名的过程分组,以便用一条DROP PROCEDURE 语句即可将同组的过程一起删除。RECOMPILE :SQL 不会缓存该过程的计划,每次执行该过程时都要重新编译。 ENCRYPTION :所创建的存储过程的内容会被加密, 可防止将过程作为 SQL Server 复制的一部分发布。 创建不带参数的存储过程 创建不带参数的存储过程 执行不带参数的存储过程 执行不带参数的存储过程的语法如下: [ EXEC[UTE] ] 存储过
文档评论(0)