当前位置:首页 » 服务存储 » 存储过程中断网
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储过程中断网

发布时间: 2022-05-01 18:07:20

1. 什么是存储过程

sql语句执行的时候要先编译,然后执行。存储过程就是编译好了的一些sql语句。用的时候直接就可以用了。所以效率会高 一 存储过程介绍 存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化 后存储在数据库服务器中,使用时只要调用即可。在ORACLE中,若干个 有联系的过程可以组合在一起构成程序包。 使用存储过程有以下的优点: * 存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可 以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的 运算。 * 可保证数据的安全性和完整性。 # 通过存储过程可以使没有权限的用户在控制之下间接地存取数据 库,从而保证数据的安全。 # 通过存储过程可以使相关的动作在一起发生,从而可以维护数据 库的完整性。 * 再运行存储过程前,数据库已对其进行了语法和句法分析,并给出 了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。 由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执 行。 * 可以降低网络的通信量。 * 使体现企业规则的运算程序放入数据库服务器中,以便: # 集中控制。 # 当企业规则发生变化时在服务器中改变存储过程即可,无须修改 任何应用程序。企业规则的特点是要经常变化,如果把体现企业规则的运 算程序放入应用程序中,则当企业规则发生变化时,就需要修改应用程序 工作量非常之大(修改、发行和安装应用程序)。如果把体现企业规则的 运算放入存储过程中,则当企业规则发生变化时,只要修改存储过程就可 以了,应用程序无须任何变化。 不同数据库存储过程的写法不一,在后面的讲座中将分别介绍ORACLE 和SYBASE存储过程的用法。 二 ORACLE 的存储过程 ORACLE 创建存储过程的语法为: create [or replace] procere 过程名 参数1 [in|out|in out] 数据类型 [,参数2 [in|out|in out] 数据类型]... pl/sql 语句 下面举例说明ORACLE数据库存储过程的写法和用法。 可以建立一个存储过程,每当用户修改数据库的重要数据时,即把 用户的用户名、掌诤筒僮骼嘈图锹枷吕矗?nbsp; create procere update_log is begin insert into update_log_tab(use_name,update_date,operation) values(user,sysdate,'update' end; 可以在恰当的位置调用这个存储过程来记录用户对表的修改。例如下面在 表sal_comm上建立一个修改触发器,每当用户修改此表后,用户的名称、修改 时间和操作即被记录在了表update_log_tab中: create trigger audit_update after update on sal_comm for each row begin update_log end --三 Sybase的存储过程 尽管Sybase存储过程的功能和写法与ORACLE类似,但他们之间还是 有一定的差别。下面讲述SYBASE的存储过程。 SYBASE可以用CREATE PROCere命令生成存储过程: CREATE PROCere 存储过程名 [;number] [[(] @parameter_name datatype [=default] [OUTput] [, @parameter_name datatype [=default] [OUTput]]...[)]] [WITH RECOMPILE] AS SQL_statements 下面是一个查询作者编码、名称和生日的存储过程: create proc p_auths @author_code varchar(10) as select author_code, name, birthdate from auths where author_code=@author_code 下面执行过程p_auths: p_auths @author_code=A00001 在CREATE PROC语句中,可以为参数赋缺省值,该值可以是任何常量。 当用户不提供参数值时,该值便作为参数值提供给过程。

2. 如何在ORACLE 存储过程中设置回滚断点

学习存储过程中使用断点回滚事务时,发现目前网络上存在一个问题,那就是使用断点回滚后,都忘记了一个很重要的事情,提交事务。虽然使用了断点回滚,但是断点回滚不像rollBack或commit一样结束当前事务,而使用断点回滚只会回滚到声明断点的地方,之前的产生的事务仍需要提交的,如果不提交,事务一直在数据库中缓存.
Demo:
procere doSomeThing(p_number out number) as
begin
insert into t_test_user_mingming(id,loginname,password,realname,type)
values(se_test_user_mingming_id.nextval,'xiaoming','1234','小明',1);
p_number := 1;
savepoint ps;--- 设置断点 ps
insert into t_test_info_mingming(id,pal,type,create_time,note)
values(se_test_info_id.nextval,'我想买台thinkPad 可以俺莫有钱',1,sysdate,'ceshi');
p_number := 2;
savepoint sp;----设置断点 sp
insert into t_test_agent(agent_id) values(1);---我这里此行会抛出异常 ORA-01400 可以替换为下句 手动抛出一个异常
-----RAISE_APPLICATION_ERROR (-20004,'抛出的异常玩玩');
commit;
exception --捕获异常
when others then
rollback to ps; ---- 如果产生异常,回滚到断点 ps
p_number :=0;
commit; --- 提交事务
end doSomeThing;
这里本人做了实验,如果在异常中不加 commit 语句,使用PL/SQL测试时,异常在缓存,t_test_user_mingming 表中没有数据记录。

存储过程里的事务操作:
create or replace procere pr_mypro2(p_a in varchar2,p_b in varchar2,p_count out number)

temp varchar2(1000); /*定义临时变量*/
is
begin

select code into p_count from table1 where a=p_a; /*查询并返回值*/
temp := p_count; /*将返回值赋给临时变量*/
savepoint point1; /*保存点*/

insert into table2(a,b)values(temp,p_b); /*将临时变量值添加到新表的字段*/

savepoint point2;

insert into

exception
when others then
rollback to savepoint point1; /*异常处理,保存点下面的操作都不会被执行*/
return;

end;

保存点(SAVEPOINT)是事务处理过程中的一个标志,与回滚命令(ROLLBACK)结合使用,主要的用途是允许用户将某一段处理回滚而不必回滚整个事务。

如果定义了多个savepoint,当指定回滚到某个savepoint时,那么回滚操作将回滚这个savepoint后面的所有操作(即使后面可能标记了N个savepoint)。
例如,在一段处理中定义了五个savepoint,从第三个savepoint回滚,后面的第四、第五个标记的操作都将被回滚,如果不使用ROLLBACK TO savepoint_name而使用ROLLBACK,将会滚整个事务处理。

3. 运用哪几种方法可以解决存储过程的数据安全问题

在这个信息爆炸的年代,现代人每天不论于公于私, 都面临必须经手大量数字信息、 而在数据安全问题上会出现各种麻烦;另一方面, 随着数据量的增加,人们对存储认识程度也日益加深, 特别是企业对于存储过程中数据安全问题尤为关注。一个稳定、 安全、可靠的存储基础架构对企业来说是必不可少的。 企业的信息系统不可避免地受到来自外界的安全危胁, 包括自然灾害、网络、硬件、软件等方面,也包括人员的操作失误。 数据存储的任何失误都可能给企业带来巨大的经济损失。 随着数据价值不断提升,以及存储网络化不断发展, 数据遭受的安全威胁日益增多,若无存储安全防范措施, 一旦攻击者成功渗透到数据存储系统中, 其负面影响将是无法估计的。这要求企业在特定存储系统结构下, 从存储安全性综合考虑。 而企业在业务运作的过程中最常面临的存储安全问题, 主要是由自然灾害,网络、硬件,人员的操作失误这几方面引起的。 自然灾害导致数据存储安全 首先,这个不是一个人为的行为, 大量的数据存储在企业的服务器存储系统中, 业务在运营中由于停电或是数据传输过程中的线路突然短路导致的数 据的丢失情况,对于企业是一个不小的损失,在这种状态下, 由于自然灾害原因导致企业数据的丢失可以说对于一个企业的数据信 息是一个很大的安全威胁,系统的正常运行,数据库的合理优化, 操作人员的完善的操作程序都确保数据的稳定安全,而突发的停电、 火灾以及后备电源的不到位对于中小企业是时常面临的问题, 同时数据的存储安全成为面对该情况时必须要解决的问题, 也是企业及时需要应对的措施,保证数据的安全, 但如何面对该情况应对企业数据的存储安全呢? 网络硬件 其次, 企业数据的硬件环境方面的问题也会导致存储过程中数据安全, 众所周知信息化快速发展的今天,硬件的更新换代速度之快, 从而使得企业的传统的存储环境已经难以应对如今海量的数据需求, 企业也要升级换代才可以适应现在数据存储的环境要求。 硬件环境的老化导致传输速率的降低, 同时网络的优化也需要良好的硬件环境作为基础, 在传输数据的过程中如果数据量过于庞大, 而企业的硬件环境没有改善那么网络的延迟导致系统的崩溃, 从而丢失数据会造成巨大的经济损失,而对于这些方面, 就需要企业根据业务发展的需要有针对性地升级存储服务器的配置, 提高网络的良性环境,保证存储过程数据安全。 人员的操作失误 “金无足赤,人无完人” 是对于当今任何企业在数据管理人员方面的一句良言, 每个人在工作的过程中不可避免的犯错误或者在操作上失误, 特别是对于从事数据库管理工作的人员,数据量之大, 系统运行之繁琐,都会给工作中带来不必要的失误, 从而对于企业的数据上的安全和完整性存在危胁, 同时中小企业的数据管理人员还肩负存储系统的运维工作, 这就对其数据存储过程中的安全性提出了更高的要求, 面对着企业存储过程数据安全问题,应该如何的解决, 采取什么样的措施保证数据的安全是摆在每个企业面前的主要问题, 数据是企业运营的核心, 强大的数据的支持保障企业在市场中能够乘风破浪, 如何解决存储过程数据安全问题, 下面针对以上的问题给以简单的建议。 一般而言,解决存储过程中的数据安全问题, 企业有很多可以采用的方案: 异地备份可以避免发生自然灾害时的数据损失;采用RAID( 独立磁盘冗余阵列)可以减少磁盘部件的损坏;采用镜像技术 可以减少存储设备损坏;快照可以迅速恢复遭破坏的数据, 减少宕机损失。 而这些技术采用可以很好的应对企业面临的自然灾害,网络、硬件, 人员的操作失误这几方面引起的数据的安全问题。 异地备份 异地备份是保护数据的最安全的方式,无论发生什么情况自然灾害, 那怕是火灾、地震,当其他保护数据的手段都不起作用时, 异地容灾的优势就体现出来了,异地备份问题在于速度和成本, 这要求拥有足够带宽的网络连接和优秀的数据复制管理软件。 通常状态下主要三方面实现异地备份,一是基于磁盘阵列, 通过软件的复制模块,实现磁盘阵列之间的数据复制, 这种方式适用于在复制的两端具有相同的磁盘阵列。 二是基于主机方式,这种方式与磁盘阵列无关。 三是基于存储管理平台,它与主机和磁盘阵列均无关。 RAID RAID系统使用许多小容量磁盘驱动器来存储大量数据, 并且使可靠性和冗余度得到增强。对计算机来说, 这样一种阵列就如同由多个磁盘驱动器构成的一个逻辑单元。 所有的RAID系统共同的特点是“热交换”能力: 用户可以取出一个存在缺陷的驱动器,并插入一个新的予以更换。 对大多数类型的RAID来说,不必中断服务器或系统, 就可以自动重建某个出现故障的磁盘上的数据。 镜像 这个技术是针对如果故障发生在异地分公司,可以使用镜像技术, 进行不同卷的镜像或异地卷的远程镜像, 或采用双机容错技术自动接管单点故障机, 保证无单点故障和本地设备遇到不可恢复的硬件毁坏时, 仍可以启动异地与此相同环境和内容的镜像设备, 以保证服务不间断。当然,这样做必然会提升对设备的投资力度。 快照 在数据保护技术中,快照技术(snapshot) 是极为基础和热门的技术之一,应用在很多存储过程中, 比如数据复制和备份都在使用这种技术。 IBM的FlashCopy、IBM NAS的PSM软件以及VERITAS的FlashSnap软件 都是快照技术的代表。快照可以迅速恢复遭破坏的数据, 减少宕机损失, 可以针对与数据库管理人员在操作中的失误进行数据恢复。 综述: 对于企业在存储过程中的数据安全问题,还有很多解决的方案, 存储安全固然十分重要, 但是存储安全只是数据中心整个安全解决方案的一个组成部分。 安全是一个内涵很广泛的话题, 存储在业务流程中扮演的并非是主角,但确实是关键角色, 因为存储包含了公司绝大部分记录,如果没有存储, 很多业务流程将没法继续。因此, 对于面对存储过程数据安全问题每个企业应该注视起来, 投入更多的精力,数据是一个企业的核心竞争力, 安全强大的数据是企业腾飞的保证,存储技术的发展, 硬件环境的完善相信会给企业数据安全无疑提供强有力的支持。

4. 存储过程是什么意思

存储过程(stored procere)是一组预先编译好的transcat-sql代码,由于是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率.存储过程跟函数不同,存储过程不能在被调用的位置上返回数据,也不能被应用在语句当中.但是存储过程可以使用变量的形式来返回参数.存储过程具有执行速度快、模块化的程序设计、减少网络通信量、保证系统安全性等优点。使用存储过程的好处很大,存储过程比在ASP脚本中运行SQL命令效率更高;可以提高整体性能并减轻网络负载(减少了在网络服务器和数据服务器之间的交互);可以优化ASP代码和增强代码灵活性等等。

5. 怎样理解存储过程可以降低网络的通信量

比较复杂的操作过程,比如购买一件物品
程序从数据服务器查询用户信息 ->
程序判断用户是否有足够的余额 ->
程序->数据服务器,写入购买物品
程序->数据服务器, 减少用户余额

如果用存储过程的话通信过程就只有一步
程序提交购买物品到数据服务器(存储过程查询用户信息,判断余额,写入数据,返回执行结果)

把部分复杂的业务逻辑交给存储过程处理,就能减少客户端和数据服务器之间来回传输数据的次数。

6. 存储过程的优缺点

存储过程的优缺点:
存储过程优点:
1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcere为封装此代码提供了一个替换位置。
2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划--
实际上是
Microsoft
SQL
Server为在存储过程中获取由
T-SQL
指定的结果而必须采取的步骤的记录。)缓存改善性能。
但sql
server新版本,执行计划已针对所有
T-SQL 批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。
3.存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。
4.使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用
(RPC)
处理服务器上的存储过程而提高性能。RPC
封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。
5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。
6.代码精简一致,一个存储过程可以用于应用程序代码的不同位置。
7.更好的版本控制,通过使用
Microsoft
Visual
SourceSafe
或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。
8.增强安全性:
a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问;
b、提高代码安全,防止
SQL注入(但未彻底解决,例如,将数据操作语言--DML,附加到输入参数);
c、SqlParameter
类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。
存储过程缺点:
1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新
GetValue()
调用,等等,这时候估计比较繁琐了。
2.可移植性差
由于存储过程将应用程序绑定到
SQL
Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不特定于
RDBMS
的中间层中可能是一个更佳的选择。
3.
大量采用存储过程进行业务逻辑的开发致命的缺点是很多存储过程不支持面向对象的设计,无法采用面向对象的方式将业务逻辑进行封装,从而无法形成通用的可支持复用的业务逻辑框架。
4.代码可读性差,相当难维护.

7. 存储过程作用是什么,优缺点以及适用范围是什么

中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程在创建时即在服务器上进行编译,所以执行起来比单个SQL语句快。 存储过程的优点: 1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。 2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。 3.存储过程可以重复使用,可减少数据库开发人员的工作量 4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权 缺点:1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。
2.可移植性差
由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。 优点: 1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcere为封装此代码提供了一个替换位置。 2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划-- 实际上是 Microsoft SQL Server为在存储过程中获取由 T-SQL 指定的结果而必须采取的步骤的记录。)缓存改善性能。 ........但sql server新版本,执行计划已针对所有 T-SQL 批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。 3.存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。 4.使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用 (RPC) 处理服务器上的存储过程而提高性能。RPC 封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。 5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。 6.代码精简一致,一个存储过程可以用于应用程序代码的不同位置。 7.更好的版本控制,通过使用 Microsoft Visual SourceSafe 或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。 8.增强安全性: a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问; b、提高代码安全,防止 SQL注入(但未彻底解决,例如,将数据操作语言--DML,附加到输入参数); c、SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。 缺点: 1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新 GetValue() 调用,等等,这时候估计比较繁琐了。 2.可移植性差 由于存储过程将应用程序绑定到 SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。

8. 怎样解决远程数据库的经常断网求答案

CDatabase::SetQueryTimeout();设定查询超时,当sql 语句(包括存储过程)执行超过这个时间时就会出错。这个出错可以用try和catch来捕捉的。你可以估算一下,执行一条sql 语句大约需要多长时间,超过这个时间你可以认为是连接中断了。
中断后你可以再重新建立一个新的连接。
一个事务尽可能的短,否则用户多了有可能会造成数据库中数据表锁死现象
因为我没有做过远程连接,这也仅仅是我的猜测,也不知对不对

9. 电脑断网了,然后把几个很重要的文件从一个优盘导入了另一个优盘,过程有半小时左右,期间有没有可能被木

建议用以下三个方法试试。
方法一
换个USB接口试试。
方法二
打开“控制面板→管理工具→计算机管理”,在其中的“磁盘管理”项目中,找到“可移动硬盘”,然后点击鼠标右键,选择删除磁盘分区,然后新建一个逻辑磁盘,并格式化即可解决内存卡的问题。
方法三
采用有关软件格式化
HP USB 移动硬盘强力格式化工具 V2007 绿色旗舰汉化版
说明:
HP USB 移动硬盘强力格式化工具 V2007 绿色旗舰汉化版
==================================================
软件大小: 376 KB
软件类别: 国外软件/系统工具
运行环境: Win2000/2003/98/ME/9X/NT/XP
软件语言: 英文/汉化
软件汉化: ATA
推荐程度: ★★★☆☆
注册信息: 免费版
症状:
插入 USB 口能识别,显示出有驱动器 就是打不开...
使用 windows 自带的格式化工具也无法格式化!
一点就出现“请插入X:盘”...在其它电脑上也是一样...
最简单的方法:找一台没病毒的电脑! 插上内存卡
双击电脑. 然后按ALT+T 选择文件夹选项 --查看 --找到(显示所有文件和文件夹) 在前面的⊙点一下 ! 然后在找到(隐藏受保护的操作系统文件)前面的√取掉!! 然后点应用,确定!
此时在点内存卡右键打开,找到AUTO的文件全部删掉!! 就可以了!!
然后安全删除内存卡~在插上就可以双击打开了!!
这个问题是应该你的内存卡中了落雪病毒才会出来这个!! 很简单的!!
在这种病毒下,有好多方法打开内存卡的! 开始-运行里输入内存卡所在的盘符! 例如C盘 就打 C: 按回车就可以打开了
还有一种......
听我的没错!
启动WinRAR 这个解压缩文件然后调出优盘盘符 用解压缩打开 它的根目录下,找到Autorun.inf文件,点右键查看,看看里边是否写着Auto.exe如果是的话找到根目录下的Auto.exe点右键删除,然后在把 Autorun.exe删除 OK。但如果不行的话你的电脑感染病毒,杀毒或做系统
由于文件系统变为RAW,这种情况下不进行格式化是不行的,但不需要低格。方法有二:
方法一:
1、将内存卡连接上电脑,右击我的电脑--管理--计算机管理
2、点击左边存储下的磁盘管理,确定内存卡显示的磁盘信息,如磁盘1等
3、右击磁盘1--新建分区,选择fat32,系统将提示创建成功
4、最后对内存卡进行格式化就可以了。
方法二:
用USBoot软件可以修复:
1、打开后运行,出现警告“USBoot使用具有一定危险性,您的数据会丢失,你的USB磁盘也可能损坏”,点“确定”继续。
USBoot已经认出了内存卡,Teclast CoolFlash USB Device。
2、选中内存卡,单击下面的“点击此处选择工作模式”,选择“HDD模式”,若这个不行,可考虑选择其它模式。选择这个模式会格式化内存卡,然后再将启动文件复制到内存卡中。点击“开始”继续。
3、稍待会提示“拔下内存卡”,这时拔下内存卡,等待提示“请再次插入内存卡”,这时再将内存卡插入直到写入成功!
4、写入过程中内存卡已经可以被自动打开了,里面被写入了三个启动文件!(被制作成内存卡启动盘)
5、再用Windows格式化内存卡即可(fat格式),检验一切正常!

10. 存储过程的定义

Microsoft SQL Server 中的存储过程与其他编程语言中的过程类似,原因是存储过程可以:

接受输入参数并以输出参数的格式向调用过程或批处理返回多个值。
包含用于在数据库中执行操作(包括调用其他过程)的编程语句。
向调用过程或批处理返回状态值,以指明成功或失败(以及失败的原因)。

可以使用 Transact-SQL EXECUTE 语句来运行存储过程。存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接在表达式中使用。

在 SQL Server 中使用存储过程而不使用存储在客户端计算机本地的 Transact-SQL 程序的好处包括:

存储过程已在服务器注册。
存储过程具有安全特性(例如权限)和所有权链接,以及可以附加到它们的证书。
用户可以被授予权限来执行存储过程而不必直接对存储过程中引用的对象具有权限。
存储过程可以强制应用程序的安全性。
参数化存储过程有助于保护应用程序不受 SQL Injection 攻击。有关详细信息,请参阅 SQL Injection。
存储过程允许模块化程序设计。
存储过程一旦创建,以后即可在程序中调用任意多次。这可以改进应用程序的可维护性,并允许应用程序统一访问数据库。
存储过程是命名代码,允许延迟绑定。
这提供了一个用于简单代码演变的间接级别。
存储过程可以减少网络通信流量。