--多语句表值函数

--多语句表值函数可以看做是标量函数和内联表值函数的结合体。

--语法:

--create function 函数名([参数列表])

--returns 表变量名 table

--(表变量的字段定义)

--as

--begin

-- SQL语句

-- return

--end

 

--练习:根据性别返回所有学生的学号,姓名,籍贯,数学成绩,如果是女生,就给她们

--   的数学成绩+10分

create function Fun_StudentScore(@gender bit)

returns @stuScore table

(

  stuNo char(9),

  stuName nvarchar(8),

  city nvarchar(8),

  math int

)

as

begin

 insert  into @stuScore select stuNo,stuName,city,math from student join score

   on student.id=socre.stuId where student.gender=@gender

   if(@gender=0)

   begin

     update @stuScore set math=math+10

   end

   return

end

--1.SQL Server函数必须使用returns声明值类型

--所有的函数必须有返回值,函数体语句的最后一句必须是return

--函数不嫩能够修改基表中的数据,也就是不能使用insert,update,delete语句

--调用

select * from dbo.Fun_StudentScore(1)