• SQL函数


    /*
    1标量值函数,简单点来讲就是返回的结果只是一个标量,对于我来讲,返回的结果就是一种类型的一个值。
    2内联表值函数 ,内联表值函数返回的是表数据。当然罗,表数据就是Table类型。内联表函数返回的表结构由函数体内的SELECT语句来决定。
    3多语句表值函数,多语句表值函数跟内联表值函数都是表值函数,它们返回的结果都是Table类型。多语句表值函数顾名思义,就是可以通过多条语句来创建Table类型的数据。这里不同于内联表值函数,内联表值函数的返回结果是由函数体内的SELECT语句来决定。而多语句表值函数,则是需要指定具体的Table类型的结构。也就是说返回的Table,已经定义好要哪些字段返回。所以它能够支持多条语句的执行来创建Table数据。
    
    自定义函数注意:
    1 可以返回表变量
    2不能使用output参数;不能用临时表;函数内部的操作不能影响到外部环境;不能通过select返回结果集;不能update,delete,数据库表;
    3必须return 一个标量值或表变量
    */
    
    create function [ schema_name. ] function_name 
    ( [ { @parameter_name [ as ][ type_schema_name. ] parameter_data_type 
        [ = default ] [ readonly ] } 
        [ ,...n ]
      ]
    )
    returns return_data_type
        [ with <function_option> [ ,...n ] ]
        [ as ]
        begin 
                    function_body 
            return scalar_expression
        end
    [ ; ]
    
    
    
    --新建标量值函数 
    create function biaoliangfun( @va1 int=1,@va2 int)
    returns int
    as
    begin
        declare @result int=1
        return @result
    end
    
      
    --新建内联表值函数 
    create function biaozhifun( @va1 int)
    returns table 
    as
    return 
    (
        select id,name from people where age = @va1
    )
    
    
    --新建多语句表值函数 
    create function duobiaofun( @va1 int)
    returns @result table (id int,name nvarchar(20))
    as
    begin
        insert into @result(id,name) values(100,'china')
        return 
    end
    
    
    --删除标量值函数 
    drop function biaoliangfun
      
    --调用表值函数 
    select * from biaozhifun(10) 
    
    --调用标量值函数 
    declare @zhi int
    set @zhi=biaoliangfun(10) 
      
  • 相关阅读:
    SVN使用svn+ssh协议连接服务器时重复提示输入密码 解决办法
    SQL Server 2008 排序函数 ROW_NUMBER和RANK 用法总结
    数据表基础知识(1)
    数据库基本概念
    String函数
    委托
    递归算法
    关于C#引用类型赋值
    BackgroundWorker的应用
    DevExpress_Report 主从报表绑定数据,分页打印
  • 原文地址:https://www.cnblogs.com/tlmbem/p/10693372.html
Copyright © 2020-2023  润新知