SQL 001.02存储过程创建存储过程(create proc)带输出参数的存储过程执行存储过程(exec)
Posted 平凡加班狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL 001.02存储过程创建存储过程(create proc)带输出参数的存储过程执行存储过程(exec)相关的知识,希望对你有一定的参考价值。
存储过程
建表
存储过程详解
--SqlServer存储过程
-- 【1】创建存储过程
if (OBJECT_ID('proc_get_syudent','p') is not null) --如果这个存储过程已经存在(则删掉它)
drop proc proc_get_syudent
go
create proc proc_get_syudent--创建存储过程
as
select * from student;
--执行存储过程
exec proc_get_syudent;
-- 【2】修改存储过程
alter proc proc_get_syudent
as
select * from student where id > 2
--调用执行存储过程,得到返回集(exec或者execute都行)
exec proc_get_syudent;
--【3】带参数的存储过程
if (OBJECT_ID('proc_get_syudent','p') is not null)
drop proc proc_get_syudent
go
create proc proc_find_stu(@stratId int,@endId int)--两个参数
as
select * from student where id between @stratId and @endId --查询语句
go
--执行/调用 带参数的存储过程
exec proc_find_stu 4,5;
--【4】执行带通配符参数的存储过程
--如果已经存在这个存储过程就删掉这个存储过程
if (OBJECT_ID('proc_find_stuByName','p') is not null)
drop proc proc_get_syudent
go
--创建存储过程
create proc proc_find_stuByName(@name varchar(20)='%j%',@nextName varchar(20)='%')
as
select * from student where name like @name and name like @nextName;
--调用/执行该存储过程
exec proc_find_stuByName;
exec proc_find_stuByName '%欧%';
exec proc_find_stuByName '%浪%';
exec proc_find_stuByName '%浪','%欧%';
--【5】不带参数 插入语句的存储过程(前面的都是查询)
create proc insertStudentTest
as
declare @i1 int --定义插入表test的数据条数
set @i1=0 --赋初始值
while @i1<10
begin
insert into student(name,sex,age) values ('测试','男',@i1);
set @i1=@i1+1
end
--调用存储过程
exec insertStudentTest
--查看是否插入成功了
select* from student
--【6】带输出参数的存储过程
--根据存储过程的入参id条件,输出name
create proc pro2
@id1 int, --不写参数类型的话,默认就是输入参数
@name1 varchar(20) output, --输出类型的参数
@sex1 varchar(20) output --输出类型的参数
as
begin
select @name1=name,@sex1=sex from student where id=@id1
end
--调用并且查看存储过程返回的数据
declare @name2 varchar(20),@sex2 varchar(20);
exec pro2 @name1=@name2 output,@sex1=@sex2 output,@id1=2
select @name2,@sex2
实际操作一遍(这里不赘述,自己写)
以上是关于SQL 001.02存储过程创建存储过程(create proc)带输出参数的存储过程执行存储过程(exec)的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 SQL Server 通过 ETL 存储过程提取数据
在SQL窗口里,不是在语言的程序中,怎么调用oracle带有out型游标参数的过程.