数据库 存储过程 【vaynexiao】

优点:
1,是sql语句集合,可以将多个sql汇集为一个存储过程,一次执行
2,预编译后保存在服务器端数据库中,效率较高
缺点:
1,功能发生改变时,proc也要维护,后期有维护成本,建议过于简单的sql不要写成存储过程

系统存储过程:master数据库中,其他库可以直接使用,不需要加数据库名
自定义存储过程:用户在特定数据库中创建的sql集合,可以传参数,可以有返回值。

调用
execute/exec
exec pro_real_holiday ‘2019-02-01’,‘2019-02-28’,‘01’–不指定参数名称,则按照该存储过程声明时参数的顺序来接收参数,
exec pro_real_holiday @date_end=‘2019-02-28’,@org_code=‘01’,@date_start=‘2019-02-01’–此时可以打乱声明顺序,它自动根据名字来对应接收参数

create/alter proc/procedure proc_name
@a int,
@b int
as
begin
select * from report_day
select * from report_day
end

exec/execute proc_name
drop proc_name

CREATE TABLE [dbo].[report_day] (
    [id] int NOT NULL ,
    [name] varchar(100) NULL ,
    [content] varchar(100) NULL ,
    [create_date] date NULL ,
    [birthday] datetime NULL 
)

alter proc myproc
@id int,
@name varchar(200),
@content varchar(200)
as 
begin
    declare @birthday datetime
    set @birthday=‘2019-12-12’
    delete from report_day;
    insert into report_day(id,name,content,create_date,birthday)
    values(@id,@name,@content,getdate(),@birthday);
    select * from report_day
end

exec myproc 1, ‘kobe’, ‘mvpppppp’

发布了75 篇原创文章 · 获赞 106 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/vayne_xiao/article/details/105321130