zoukankan      html  css  js  c++  java
  • 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) 
      
  • 相关阅读:
    跳表(SkipList)及ConcurrentSkipListMap源码解析
    动态主机配置协议DHCP
    电子邮件
    万维网WWW
    运维技巧(4):管理邮箱收发限制
    运维技巧(3):管理邮箱配额限制:重点是powershell命令操作
    运维技巧(2):创建邮箱方法详解
    运维技巧(1):如何通过邮件头和传输跟踪日志查看原始客户端IP
    管理客户端连接(6):客户端软件可以连接上邮箱
    配置Exchange 防病毒和反垃圾邮件(9)
  • 原文地址:https://www.cnblogs.com/tlmbem/p/10693372.html
Copyright © 2011-2022 走看看