关系数据库的存储过程使用(存储过程在数据库中的作用是什么)
一、数据库中游标的作用是什么
游标是从表中检索出的结果集,可以被看作指向结果集中某一行的指针(Pointer)与结果集进行交互的机制。游标的每个时间点只能指向一行,但是可以根据需要指向结果集中其他的行。
游标从概念上讲是基于数据库的表返回结果集,由于它指示结果集中的当前位置,就像计算机屏幕上的光标指示当前位置一样,“游标”由此得名。游标概述游标是通过游标库来实现的,而游标库常常是作为数据库系统或数据访问API的一部分而得以实现的软件,用来管理从数据源返回的数据的结果集。游标跟踪结果集中的位置,并允许对结果集逐行执行多个*作,在这个过程中可能返回至原始表,也可能不返回至原始表。
在初始的时候,游标被放置在结果集中第一行的前面。为了使游标指向第一行,要执行FETCH动作。当游标指向结果集中某行的时候,可以对这行数据进行加工处理,要想得到下一行数据,要继续执行FETCH*作。FETCH*作可以重复执行,直到完成结果集中的所有行。
1.游标的作用对查询数据库所返回的记录进行遍历。
2.游标的属性((1)游标是只读的,也就是不能更新它。
(2)游标是不能滚动的,也就是只能在一个方向上进行遍历,不能在记录之间随意进退,也不能跳过某些记录。
(3)避免在已经打开游标的表上更新数据。游标使用游标对关系数据库来说极其重要,它是*作数据库服务器上记录的一种重要机制。在存储过程中使用游标,经过声明游标、打开游标、*作游标和关闭游标等几个步骤,将游标指向的数据取到本地,在结束时关闭游标。
1.游标的使用步骤(1)声明游标语法格式:DECLARE+游标名+CURSORFOR+SELECT语句DECLARE为声明游标的关键字,后面跟游标的名称,CURSORFOR表示游标要*作的数据结果集,后面跟一条数据库的SELECT检索语句。例如,下面语句声明了一个叫mycoursor的游标。DECLAREmycoursorCURSORFORselectuser_name
二、如果希望查看数据库的属性,可以使用的系统存储过程是哪个
在百度上直接搜索“SqlServer系统存储过程”,呵呵呵~
sp_databases
列出服务器上的所有数据库
sp_server_info
列出服务器信息,如字符集,版本和排列顺序
sp_stored_procedures
列出当前环境中的所有存储过程
sp_tables
列出当前环境中所有可以查询的对象
sp_password
添加或修改登录帐户的密码
sp_configure
显示(不带选项)或更改(带选项)当前服务器的全局配置设置
sp_help
返回表的列名,数据类型,约束类型等
sp_helptext
显示规则,默认值,未加密的存储过程,用户定义的函数,触发器或视图的实际文本
sp_helpfile
查看当前数据库信息
sp_dboption
显示或更改数据库选项
sp_detach_db
分离数据库
sp_attach_db
附加数据库
sp_addumpdevice
添加设备
sp_dropdevice
删除设备
sp_pkeys
查看主键
sp_fkeys
查看外键
sp_helpdb
查看指定数据库相关文件信息
sp_addtype
自建数据类型
sp_droptype
删除自建数据类型
sp_rename
重新命名数据库
sp_executesql
执行SQL语句
sp_addlogin
添加登陆
sp_droplogin
删除登录
sp_grantdbaccess
把用户映射到登录,即添加一个数据库安全帐户并授予塔访问权限
sp_revokedbaccess
撤销用户的数据访问权,即从数据库中删除一个安全帐户
sp_addrole
添加角色
sp_addrolemember
向角色中添加成员,使其成为数据库角色的成员
sp_addsrvrolemember
修改登录使其成为固定服务器角色的成员
sp_grantlogin
允许使用组帐户或系统用户使用Windows身份验证连接到SQL
sp_defaultdb
修改一个登录的默认数据库
sp_helpindex
用于查看表的索引
sp_cursoropen
定义与游标和游标选项相关的SQL语句,然后生成游标
sp_cursorfetch
从游标中提取一行或多行
sp_cursorclose
关闭并释放游标
sp_cursoroption
设置各种游标选项
sp_cursor
用于请求定位更新
sp_cursorprepare
把与游标有关的T-SQL语句或批处理编译成执行计划,但并不创建游标
sp_cursorexecute
从由sp_cursorprepare创建的执行计划中创建并填充游标
sp_cursorunprepare
废弃由sp_cursorprepare生成的执行计划
sp_settriggerorder
指定第一个或后一个激发的、与表关联的AFTER触发器。在第一个和后一个触发器之间激发的AFTER触发器将按未定义的顺序执行
sp_start_job
立即启动自动化任务
sp_stop_job
停止正在执行的自动化任务
三、存储过程在数据库中的作用是什么
第一:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。
第二:存储过程可接受参数、输出参数、返回单个或多个结果集及返回值。向程序返回错误原因。
第三:存储过程运行比较稳定,不会有太多的错误。只要一次成功,以后都会按这个程序运行。
第四:存储过程主要是在服务器上运行,减少对客户机的压力。
第五:存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏数据逻辑。
第六:存储过程可以在单个存储过程中执行一系列SQL语句。
第七:存储过程可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
扩展资料:
存储过程的优点:
1、存储过程的能力大大增强了SQL语言的功能和灵活性。
2、可保证数据的安全性和完整性。
3、通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
4、通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
5、在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。
6、可以降低网络的通信量。
7、使体现企业规则的运算程序放入数据库服务器中,以便集中控制。
参考资料:百度百科-存储过程
四、数据库储存过程有哪些种类
一个存储过程既是一个系统的标准组件,也是一个可编程的函数,它在数据库中创建并保存,总体来说关系数据库系统中存在如下几大类型存储过程。
1.系统存储过程系统存储过程以sp_开头,用来进行系统的各项设定,取得系统的各项信息,管理系统的各项相关工作。
2.本地存储过程本地存储过程由用户创建,是为了完成某一特定功能的SQL语句集。事实上,一般所说的存储过程就是指本地存储过程。
3.临时存储过程临时存储过程分为本地临时存储过程、全局临时存储过程两种。
((1)本地临时存储过程。以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它。
(2)全局临时存储过程。以两个井字号(##)开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程。全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4.远程存储过程在特定数据库中,远程存储过程是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5.扩展存储过程扩展存储过程是用户使用外部程序语言编写的存储过程,扩展存储过程的名称通常以xp_开头。