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型游标参数的过程.

sql server中怎样创建保存数据的存储过程

用SQL创建存储过程的题目(SQL SERVER2000下)

sql中创建关于更新的存储过程