码迷,mamicode.com
首页 > 数据库 > 详细

数据库学习记录

时间:2018-12-05 21:51:24      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:else   sel   gif   return   创建   输入参数   info   out   code   

1.数据库中的exec命令,可以用来执行存储过程,可以把存储过程理解为定义在sql server数据库中的函数,而exec就是去执行该定义的函数,既然是函数,那么定义时就有一下几种类型

    1)无参数无返回值的

    2)有参数无返回值的

    3)无参数有返回值的

    3)有参数有返回值的

下面举几个简单的例子,供简单理解

(1  无参数

  create procedure sp_latvia_sys_role    --创建一个存储过程,其中sp_latvia_sys_role是创建的存储过程名称

  as                  --作为(存储过程执行 本质上就是去执行一条定义好的语句)

  begin

  select * from sys_role

  end

 

2.带输入参数

create procedure procedure_proc_GetoffinfoById --(存储过程名)
@Id int--(参数名 参数类型)
as select Name from dbo.Office_Info where Id=@Id--(sql语句)

exec procedure_proc_GetoffinfoById 2--(存储过程名称之后,空格加上参数,多个参数中间以逗号分隔)

注:参数赋值是,第一个参数可以不写参数名称,后面传入参数,需要明确传入的是哪个参数名称

3.带输入输出参数

技术分享图片

create procedure proc_office_info--(存储过程名)
@Id int,@Name varchar(20) output--(参数名 参数类型)传出参数要加上output
as 
begin
select @Name=Name from dbo.Office_Info where Id=@Id --(sql语句)
end

declare @houseName varchar(20) --声明一个变量,获取存储过程传出来的值
exec proc_office_info--(存储过程名)
4,@houseName output--(传说参数要加output 这边如果用@变量 = OUTPUT会报错,所以换一种写法)

select @houseName--(显示值)

技术分享图片

4.带返回值的

技术分享图片
create procedure proc_office_info--(存储过程名)
@Id int--(参数名 参数类型)
as 
begin
if(select Name from dbo.Office_Info where Id=@Id)=null --(sql语句)
begin
return -1
end
else
begin
return 1
end
end

declare @house varchar(20) --声明一个变量,获取存储过程传出来的值
exec @house=proc_office_info 2 --(调用存储过程,用变量接收返回值)
--注:带返回值的存储过程只能为int类型的返回值
print @house
技术分享图片

数据库学习记录

标签:else   sel   gif   return   创建   输入参数   info   out   code   

原文地址:https://www.cnblogs.com/zst-blogs/p/10072024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!