存储过程
快速开发平台 存储过程是预编译的SQL语句的集合,这些语句存储在一个名称下并作为一个单元处理。存储过程代替了传统的逐条执行sql语句的方式。一个存储过程中可包含查询、插入、更新、删除等操作的一系列sql语句。当这个存储过程被调用执行时,这些操作也会同时执行
存储过程与其他编程语言的过程类似,它可以接受输入参数,并以输出参数的格式向调用过程或批处理返回多个值;包含用于在数据库中执行操作(包括调用其他过程的)的编程语句;向调用过程或批处理返回状态值,以指明成功或失败(以及失败的原因)。
createproc [EDURE] procedure_name [:number]
[{@parameter data_type}
[VARYING] [=default] [OUTPUT]]
[...n]ASsql_statement
参数 |
描述 |
create procedure |
关键字,也可以写成create proc |
procedure_name |
创建的存储过程名字 |
number |
对存储过程进行分组 |
@parameter |
存储过程参数,存储过程可以声明一个或多个参数 |
data_type |
参数的数据类型,所有数据类型(包括text,ntext和image)均可以用作存储过程的参数,但cursor数据类型只能用于OUTPUT参数 |
VARYING |
可选项,指定作为输出参数支持的结果集(由存储过程动态构造,内容可以变化),该关键字仅适用于游标参数 |
default |
可选项,表示为参数设置默认值 |
OUTPUT |
可选项,表明参数是返回参数,可以将参数值返回给调用的过程 |
n |
表示可以定义多个参数 |
AS |
指定存储过程要执行的操作 |
sql_statement |
存储过程中的过程体 |
示例
查询语句
create proc Name1
(
@id int ,
@name varchar(50),
@records bit output
)
as
begin
Select * from table
where 条件=' '
end
添加语句
create proc Name2
(
@id int ,
@name varchar(50),
@sex int,
@success int output
)
as
begin
INSERT INTO [dbo].[S1]
VALUES
(@name,@sex)
end
修改语句
create proc Name3
(
@id int ,
@name varchar(50),
@sex int,
@success int output)
as
begin
if exists (select 1 from S1
where name = @name)
begin
set @success = 0
return
end
UPDATE [dbo].[S1]
SET [Name] = @name
,[sex] = @sex
WHERE id =@id
set @success =1
end
删除语句
create proc Name4
(
@id int,
@success bit output
)
as
begin
DELETE FROM [dbo].[S1]
WHERE id=@id
end
转载请注明:文章转载自:快速开发框架 » Sql Server 存储过程
本文标题:Sql Server 存储过程