Sql Server 存储过程

  存储过程

快速开发平台 存储过程是预编译的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 存储过程
原文地址:https://www.cnblogs.com/frfwef/p/14572708.html