sqlserver自定义函数

时间:2017-07-05 00:19:04   收藏:0   阅读:425

标量函数

RETURNS 子句指定一种标量数据类型,则函数为标量值函数。

语法

Create function 函数名(参数)
Returns 返回值数据类型
[with {Encryption | Schemabinding }]
[as]
begin
SQL语句(必须有return 变量或值)
End

释义:

列子:

CREATE FUNCTION funcGetResult(@ret int )  --传入了一个int类型的参数
RETURNS int       --注意这里返回的是一个数据类型
AS  
BEGIN 
    declare @n int
    set @n = 3
    return @n* @ret
END

 

表值函数又分为两种:内嵌表值函数(行内函数)或多语句函数

表值函数:内嵌表值函数

如果 RETURNS 子句指定的 TABLE 不附带列的列表,则该函数为内嵌表值函数。

语法

create function 函数名(参数)
returns table
[with {Encryption | Schemabinding }]
as
return(
    一条SQL语句
)

释义:

列子:

create function getExams(@written float)
returns table as
return(
    select s.stuno,s.stuname,s.brithday,e.written,e.lab
    from StuInfo s left outer join exam e
    on s.stuno=e.stuno
    where written >= @written
)

表值函数:多语句函数

如果 RETURNS 子句指定的 TABLE 类型带有列及其数据类型,则该函数是多语句表值函数

语法:

--多句表格值函数
   create function 函数名(参数)
   returns 表格变量名table (表格变量定义)
   [with {Encryption | Schemabinding }]
as
   begin
    SQL语句
   end
--多句表格值函数包含多条SQL语句,至少有一条在表格变量中填上数据值

例子:

create function GetInfo(@name varchar(20))
returns @cTable table(UserName varchar(10),UserPwd varchar(10))
as
begin
  insert into @cTable
  select userName,userPass from userinfo where username=@name
return   --函数中最后一条语句必须是返回语句。
end

--调用 select * from GetInfo(admin) ------------ UserName UserPwd admin amin

 

原文:http://www.cnblogs.com/qiuguochao/p/7119058.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!