何为存储过程,举例说明
发布网友
发布时间:2022-04-22 08:04
我来回答
共3个回答
热心网友
时间:2022-04-11 18:17
存储过程,实际就是一段写在数据库中的代码。。
由于此段数据库操作代码由服务器完成,而客户端只是进行简单的参数提交,所以,可以有效的利用服务器的强劲而减小对客户机的负合。
如:你想插入一条数据到数据库。
虽然你的要求是,先检查表里面是否己存在该项。
如果不存在就Insert,如果存在就UPDATE。
这个时候,你就可以把这个判断用存储过程来写。
你的程序只要提示你想要保存到数据库里面的东西即可。
下面就是一个简单的存储过程。
CREATE PROCEDURE [insert_A_Employees]
(@fWorkNo [int],
@fWorkName [char](10),
@fDeptName [varchar](20),
@fGroupName [varchar](20),
@fRecordDate [datetime])
AS
declare @iCount int
select @iCount = count(*) from A_EMPLOYEES where @fWorkNo = fWORKNO --统计该工号在数据库的数量赋值给 @iCount
if @iCount = 0 --如果数据库中不存在该工号
begin
INSERT INTO [CLKQ].[dbo].[A_Employees] --则插入数据
( [fWorkNo],
[fWorkName],
[fDeptName],
[fGroupName],
[fRecordDate])
VALUES
( @fWorkNo,
@fWorkName,
@fDeptName,
@fGroupName,
@fRecordDate)
return 1 --返回一个标识
end else begin --否则则更新数据
update [CLKQ].[dbo].[A_Employees]
set [fWorkName]=@fWorkName,
[fDeptName]=@fDeptName,
[fGroupName]=@fGroupName,
[fRecordDate]=@fRecordDate
where [fWorkNo]=@fWorkNo
return 0 --返回一个标识
end
GO
此时你只要在客户端程序提供:
@fWorkNo ,
@fWorkName ,
@fDeptName ,
@fGroupName ,
@fRecordDate
这几个值就行了。。
其它处理过程就由服务器方处理了。
以上是以 SQL 数据库为例。。。
ACCESS 等数据库没有此功能。
参考资料:我忘了在哪找的
热心网友
时间:2022-04-11 19:35
简单的说,存储过程相当于我们平常的函数,只不过是SQL语言来实现
以下为一个简单例子
--创建存储过程(这里只简单示例,当然这里可以写很复杂的逻辑)
create proc proc_student as
select * from student
select * from student where sex='man'
select * from student where sex='woman'
go
--调用存储过程
exec proc_student
热心网友
时间:2022-04-11 21:09
比如你要根据用户的ID.去查看该用户当前是什么级别.然后按不同的级
别.给该用户不同的奖励.
如果不用存储过程.你是不是得先执行一个select语句.然后再根据返回
值执行一个update语句?
好.现在用存储过程.把上述的过程封装起来.你在程序里只需要调用这个
存储过程.只需要把用户ID传参数进去.其它的操作都在数据库端进行了.
不用你的程序再去判断了.
何为存储过程,举例说明
存储过程,实际就是一段写在数据库中的代码。。由于此段数据库操作代码由服务器完成,而客户端只是进行简单的参数提交,所以,可以有效的利用服务器的强劲而减小对客户机的负合。如:你想插入一条数据到数据库。虽然你的要求是,先检查表里面是否己存在该项。如果不存在就Insert,如果存在就UPDATE。这个...
什么是存储过程
二 ORACLE 的存储过程 ORACLE 创建存储过程的语法为: create [or replace] procedure 过程名 参数1 [in|out|in out] 数据类型 [,参数2 [in|out|in out] 数据类型]... pl/sql 语句 下面举例说明ORACLE数据库存储过程的写法和用法。 可以建立一个存储过程,每当用户修改数据库的重要数据时,即把...
举例说明存储过程的定义与调用(数据库习题) 基于SQL server
举例:创建一存储过程,getDetailByName,参数学生姓名,筛选学生基本信息,不存在的话做检测。打印不存在此学生 create procedure getDetailByName studentname char(10)as if exists(select * from student where sname=@studentname)select * from student else print '此学生不存在'go exec getDetailByName...
请举例说明存储过程和函数的共同点和区别。
1、函数可以用在sql查询里面而过程不行,因为函数有返回值,过程只能通过出参。2、在调用时函数必须要有一个变量来接收返回值而过程不需要。可能最大的区别在于以上两点。3、声明的关键字也是不一样的。
数据库课程学习的主要内容?举例说明
1、数据库课程学习的主要内容有:介绍关系型数据库。建库建表和删表。索引和约束主外键。然后开始学 sql 简单查询。接下来就是高级查询和高级应用,游标以及存储过程。2、例如:关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的...
oracle中如何执行已经写好的存储过程,就exec 一下?好像不行哦,请举例...
这个得看你在哪里执行了,如果是命令窗口用 exec 存储过程名 就可以。如果是pl/sql窗口就得用 beging 过程名 end; 包含起来作为匿名块来执行。
如何将C#控件中选择的年月日参数传入存储 过程中!求大侠举例说明小弟比 ...
存储过程,跟数据库语句在编程环境里因该没有本质区别,都是给一段文本。所以我觉得你的问题是语句有问题。对了,存储过程得提前写在数据库里的。你真的写了吗?可以试试插入语句,看看普通的数据库插入语句是否在你写的C#里起作用了。这个事情需要翻看 数据库SQL2000的书。虽然那书并没有把存储过程...
我要写个oracle的存储过程,这个存储过程查询视图,然后把查询到的内容...
很简单,代码如下 create or replace procedure test is begin --两个表字段一样 insert into 表名1 select * from 表名2;--字段不一样 insert into 表名1(字段1,字段2,字段3) select 字段1,字段2,字段3 from 表名2;COMMIT;end
...PL/sql 如果一张表的每行数据是另一个表的列名 怎么用存储过程...
举例说明 表A:prjCode prjName p1 项目1 p2 项目2 另外有一存储过程 getPrjTask,参数为prjCode; 获取表的所有prjCode,每个prjCode作为参数传入存储过程(这里传参数可以使用游标循环传参), 循环调用存储过程。循环调用的语句如下 declare @prjCode Nvarchar(50)DECLARE cursor1 CURSOR FOR ...
...Server 2008中,数据库中的数据完整性怎样得到保证,请举例说明...
1、数据完整性就是通过各种约束+触发器保证 2、存储过程是对一系列完成特定任务的语句的封装,支持传参和返回,相比批处理的优点是执行计划重用,不用每次都分析再生成计划,当然如果存储过程内部是执行动态语句,那就没区别了;触发器可以算作是加了触发机关的存储过程。触发器大功能上分为DDL和DML两块...