A. 存储过程是什么意思
存储过程(stored procere)是一组预先编译好的transcat-sql代码,由于是已经编译好的代码,所以执行的时候不必再次进行编译,从而提高了程序的运行效率.存储过程跟函数不同,存储过程不能在被调用的位置上返回数据,也不能被应用在语句当中.但是存储过程可以使用变量的形式来返回参数.存储过程具有执行速度快、模块化的程序设计、减少网络通信量、保证系统安全性等优点。使用存储过程的好处很大,存储过程比在ASP脚本中运行SQL命令效率更高;可以提高整体性能并减轻网络负载(减少了在网络服务器和数据服务器之间的交互);可以优化ASP代码和增强代码灵活性等等。
B. .Net程序中说的存储过程是什么意思
存储过程是数据库的一个概念
打个比方说,存储过程就相当于一个存在数据库中的方法,可以有输入参数(input),输出参数(output),返回值(return)
比如一个方法
public
string
GetData(int
id,out
int
rowCount)
参数id代表input
参数rowCount代表output,即可当输入参数,也可当输出参数
返回值类似
一个简单的存储过程:
create
proc
T_GetData
@id
int
input,
//输入参数
@rowCount
int
output
//可输入输出参数
类似于.net中的out
parameter
AS
begin
select
@rowCount
=
sum(rowname)
from
table1
where
id
=
@id
//这里给output参数赋值
return
'测试而已'
//这里返回值
end
GO
就创建了一个存储过程,可以跟调用方法一样很简单的调用它了
C. mysql中存储过程是什么意思
存储过程(stored
procere)是一组为了完成特定功能的sql语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
一个存储过程是一个可编程的函数,它在数据库中创建并保存。
D. 啥叫“存储过程”啊
存储过程
存储过程是保存在数据库中的专门进行数据操作的代码过程。存储过程通常与触发器结合使用,来控制数据的完整性。在打开数据库时,存储过程被自动加载到内存中,可以象其他过程文件一样进行调用。
1.建立存储过程
可以在项目管理器中选择建立或修改存储过程。在项目管理器的Data选项卡中选定Stored Proceres节点,然后单击New、Add或Modify按钮都将打开存储过程文本编辑器,如图7-12所示。
也可以在首先打开数据库的情况下,执行MODIFY STRUCTURE命令打开存储过程文本编辑器。如:
OPEN DATABASE dbMyData
MODIFY STRUCTURE
一个数据库的所有存储过程包含在一个文件中,过程使用PROCEDURE语句声明,这与一般的过程文件是完全一样的。
例如,下面为数据库建立了一个名为NewStuId的存储过程,该过程为学生档案表的StuId字段根据当前StuId中的最大值自动生成一个编号,并保存到StuId字段中中,如图7-13所示。
图7-12 可以在项目管理器选择建立或修改存储过程
图7-13 NewStuId存储过程
执行下面的代码,将在学生档案表中添加一条新记录,并为StuId字段赋值。
APPEND BLANK
NewStuId() &&执行存储过程
需要注意的是,如果准备存储过程用于表的触发器,则不能包含如图7-13中所示的CALCULATE、GO和REPLACE这些引起记录移动的命令。
2.从文本文件中导入存储过程
可以使用APPEND PROCEDURES命令将文本文件中的存储过程以编程的方式添加到当前数据库中,其语法格式如下:
APPEND PROCEDURES FROM FileName [AS nCodePage] [OVERWRITE]
其中,FileName指定保存存储过程的文本文件名称;AS nCodePage指定要追加其存储过程的文本文件要转换的代码页;OVERWRITE指定用文本文件中的过程改写数据库中的当前存储过程,如果不包含此参数,文本文件中的存储过程将追加到当前存储过程中。
需要注意的是,在使用该命令前,数据库必须以独占方式打开并设置为当前数据库。
3.将存储过程导出到文本文件中
可以使用COPY PROCEDURES命令将当前数据库中的存储过程导出到文本文件,其语法格式如下:
COPY PROCEDURES TO FileName [AS nCodePage] [ADDITIVE]
其中,FileName指定文本文件名,存储过程将被复制到此文本文件中;AS nCodePage指定文本文件的代码页;ADDITIVE指定将存储过程追加到指定文本文件尾,如果若省略该参数,则覆盖文本文件的内容。
4.查看数据库中的存储过程
可以使用DISPLAY PROCEDURES或LIST PROCEDURES命令显示当前数据库中的存储过程名称,二者的功能基本相同。其中,DISPLAY PROCEDURES命令的语法格式如下:
DISPLAY PROCEDURES [TO PRINTER [PROMPT] | TO FILE FileName] [NOCONSOLE]
其中,TO PRINTER [PROMPT]指定将显示结果输出到打印机中,包含PROMPT子句可以在打印开始前显示一个打印对话框;TO FILE FileName指定将显示结果输出到FileName指定的文件中;NOCONSOLE指定不向Visual FoxPro主窗口或活动的用户自定义窗口输出。
例如,下面的代码将显示dbMyData数据库中的存储过程名称。
OPEN DATABASE dbMyData
DISPLAY PROCEDURES
7.3.6 设置触发器
触发器是绑定在表上的表达式,当表中的任何记录被指定的操作命令修改时,触发器被激发。当数据修改时,触发器可执行数据库应用程序要求的任何其他操作。
触发器作为特定表的属性来创建和存储。如果从数据库中移去一个表,则同时删除和该表相关联的触发器。从前面的表7-7可以看出,触发器是在进行了其他所有检查之后(如有效性规则、主关键字的实施,以及NULL值的实施)被激活,位于所有约束的最后面。并且与字段级规则和记录级规则不同,触发器不对缓冲数据起作用。
1.建立触发器
可以使用表设计器或CREATE TRIGGER命令来创建触发器。对于每个表,可为插入、更新及删除3个事件各创建一个触发器。在任何情况下,一个表最多只能有3个触发器。触发器必须返回“真”(.T.)或“假”(.F.),只有返回“真”时操作才能继续进行。能够激发触发器的命令如表7-9所示。
表7-9 能够激发触发器的命令
触发器
命令
删除触发器
DELETE命令
插入触发器
APPEND FROM、APPEND FROM ARRAY、APPEND BLANK、IMPORT、INSERT-SQL和RECALL命令
序表
触发器
命令
更新触发器
GATHER、REPLACE、REPLACE FROM ARRAY和UPDATE SQL命令
需要注意的是,不能对有触发器的表使用INSERT命令,但是可以使用INSERT-SQL命令;发出PACK或ZAP不会激发任何触发器;如果更新具有删除标记的记录,不会激发触发器;如果表使用了缓冲模式,只有当使用TABLEUPDATE( )函数进行发送更新时,才激发更新触发器。
下面是在dbMyData数据库中建立的4个存储过程。其中,InsertData用于在添加记录时显示一个“新增记录…”提示;UpdateData用于在记录更新时自动将更新记录写入到一个日志表tblStudent2中,来记录用户对学生档案表所做的修改;DeleteData用于在删除记录时显示一个信息框,询问用户是否确认删除记录;WriteLog用于写入日志,该过程可以接收来自UpdateData过程的参数传入值。
PROCEDURE WriteLog
PARAMETERS lcStuId,lcStuName,lcClassName,ldEnterDate,lnChinese,lnMaths,lnTotal
*!* 将变动写入到日志表tblStuden2中
INSERT INTO tblStudent2 (StuId,StuName,ClassName,EnterDate,Chinese,Maths,Total) ;
VALUES (lcStuId,lcStuName,lcClassName,ldEnterDate,lnChinese,lnMaths,lnTotal)
PROCEDURE InsertData
WAIT WINDOW "新增记录..." NOWAIT TIMEOUT 2
RETURN .T.
PROCEDURE UpdateData
WAIT WINDOW "正在将变动写入日志表..." NOWAIT TIMEOUT 2
WriteLog(StuId,StuName,ClassName,EnterDate,Chinese,Maths,Total)
RETURN .T.
PROCEDURE DeleteData
IF MESSAGEBOX("确认删除该记录吗?",4+32," 提示")=6
RETURN .T.
ELSE
RETURN .F.
ENDIF
打开表设计器,在Table选项卡的Insert trigger、Update trigger和Delete trigger文本框中分别输入InsertData()、UpdateData()和DeleteData(),如图7-14所示。
图7-14 为表建立触发器
也可以使用CREATE TRIGGER命令为表建立触发器表达式,该命令的语法格式如下:
CREATE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE AS lExpression
其中,TableName是要建立触发器的表名称,lExpression是触发器表达式。例如,下面使用该命令为学生档案表建立了与图7-14同样的触发器表达式。
OPEN DATABASE dbMyData
CREATE TRIGGER ON 学生档案表 FOR INSERT AS InsertData() &&建立插入触发器
CREATE TRIGGER ON 学生档案表 FOR UPDATE AS UpdateData() &&建立更新触发器
CREATE TRIGGER ON 学生档案表 FOR DELETE AS DeleteData() &&建立删除触发器
2.删除触发器
可以在表设计器的Table选项卡中删除触发器或使用DELETE TRIGGER命令从数据库表中删除触发器。其中,DELETE TRIGGER命令的语法格式如下:
DELETE TRIGGER ON TableName FOR DELETE | INSERT | UPDATE
其中,TableName是要删除触发器的表名称。
例如,下面的代码将删除学生档案表中的插入触发器。
DELETE TRIGGER ON 学生档案表 FOR INSERT
3.修改触发器
可以在表设计器的Table选项卡中或者使用CREATE TRIGGER命令来修改触发器。使用命令修改触发器与建立触发器时相同。
E. SQL里面所说的建立存储过程是什么意思有什么用
用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。 存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。 存储过程是利用SQL Server所提供的Transact-SQL语言所编写的程序。Transact-SQL语言是SQL Server提供专为设计数据库应用程序的语言,它是应用程序和SQL Server数据库间的主要程序式设计界面。它好比Oracle数据库系统中的PL-SQL和Informix的数据库系统结构中的Informix- 4GL语言。这类语言主要提供以下功能,让用户可以设计出符合引用需求的程序: 1)、变量说明 2)、ANSI兼容的SQL命令(如Select,Update….) 3)、一般流程控制命令(if…else…、while….) 4)、内部函数 存储过程(Stored Procere)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。 存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。优点:* 存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的 运算。 * 可保证数据的安全性和完整性。 # 通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。 # 通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。 * 在运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能。由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。 * 可以降低网络的通信量。 * 使体现企业规则的运算程序放入数据库服务器中,以便: # 集中控制。 # 当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。企业规则的特点是要经常变化,如果把体现企业规则的运算程序放入应用程序中,则当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。如果把体现企业规则的运算放入存储过程中,则当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。缺点:1:调试麻烦,但是用 PL/SQL Developer 调试很方便!弥补这个缺点。 2:移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。 3:重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。 4: 如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的。维护起来更加麻烦!
F. mysql存储过程是什么意思什么时候会用到,主要用来做什么
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批件,虽然它们的作用不仅限于批处理。
存储过程就是有业务逻辑和流程的集合,
可以在存储过程中创建表,更新数据,
删除等等。
你可以理解为用sql语句开发的一个
类和函数。
为什么要使用存储过程
通过把处理封装在容易使用的单元中,简化复杂的操作(正如前面例子所述)。
由于不要求反复建立一系列处理步骤,这保证了数据的完整性。如果所有开发人员和应用程序都使用同一(试验和测试)存储过程,则所使用的代码都是相同的。这一点的延伸就是防止错误。需要执行的步骤越多,出错的可能性就越大。防止错误保证了数据的一致性。
简化对变动的管理。如果表名、列名或业务逻辑(或别的内容)有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。
G. 数据库中的存储过程是什么意思
存储过程(Stored Procere)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
网络一下很多的
H. mysql中的存储过程是什么意思啊
存储过程(Stored Procere)是一组为了完成特定功能的SQL语句集
功能是将常用或复杂的工作,预先用SQL语句写好并用一个指定名称存储起来, 以后需要数据库提供与已定义好的存储过程的功能相同的服务时,只需调用 call 存储过程名字, 即可自动完成命令。
存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,可由应用程序通过一个调用来执行,而且允许用户声明变量 。
同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。