准备基本的数据
create table test_table (
id int identity(0,1),
name varchar(20),
age int,
book_name varchar(50),
price float
)
insert into test_table values ('jack',23,N'海底三万里',23.5);
insert into test_table values ('tom',43,N'天龙八部',123.5);
insert into test_table values ('rose',32,N'飘',53.5);
insert into test_table values ('quek',53,N'烽火俏佳人',63.5);
函数的使用
--创建函数根据书名获取作者姓名年龄 返回为某一个值是标量值函数定义
create function dbo.get_author (
@book_name varchar(50)
)
returns varchar(50) --定义返回数据的数据类型
as
begin
declare @author_name varchar(20) -- 定义返回值变量
select @author_name=name from test_table where book_name=@book_name
return @author_name
end
--select dbo.get_author(N'海底两万里');
--select dbo.get_author(N'海底三万里');
create function get_all_info (@book_name varchar(50))
returns table --返回表
as
return select id,age,name from test_table where book_name=@book_name
--select * from dbo.get_all_info(N'海底三万里')
--select * from dbo.get_all_info(N'天龙八部')
存储的使用
--查询是否存在某一本书,返回存在或者不存在
create proc havesomebook (
@book_name varchar(20),
@ishave varchar(5) output
)
as
if (exists(select * from dbo.get_all_info(@book_name)))
begin
set @ishave='存在'
end
else
begin
set @ishave='没有'
end
declare @ishave varchar(5)
exec havesomebook N'海底三万里',@ishave output
print @ishave