zoukankan      html  css  js  c++  java
  • SQL SERVER 标量函数

    标量函数的定义

    SQL Server标量函数接受一个或多个参数并返回单个值。

    标量函数可帮助简化代码。 例如,可能有许多查询中出现的复杂计算。可以创建一个标量函数来封装公式并在查询中使用它,而不是在每个查询中包含公式。

    平时使用的场景

    在一个功能中,根据业务去写存储过程中的算法。存储过程的调用时会出现,返回值不明确的情况。

    为避免此情况,可使用统一的标量函数值,将返回值进行编程规范

    如:抽奖活动,返回值为-1为已抽奖,或者返回值为-1为不满足条件

    标量函数的使用

    创建

    USE [XXXDB]
    GO
    /****** Object:  UserDefinedFunction [dbo].[ReturnState_OtherStatus]    Script Date: 2021/1/19 9:41:24 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		<lwz>
    -- Create date: <Create Date, ,>
    -- Description:	<返回结果的其他状态,超过次数等>
    -- =============================================
    CREATE FUNCTION [dbo].[ReturnState_OtherStatus]
    (
    
    )
    RETURNS SMALLINT
    AS
    BEGIN
    	
    	RETURN -1;
    
    END
    

    存储过程调用

    USE [OldSoldierComeBackDB]
    GO
    /****** Object:  StoredProcedure [dbo].[IsReceiveComeBackPacket]    Script Date: 2021/1/19 9:45:55 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    -- =============================================
    -- Author:		zhuchunfeng
    -- Create date: 2016-06-21
    -- Description: 是老玩家 检查有没有领取过老玩家礼包    
    -- =============================================
    ALTER PROCEDURE [dbo].[IsReceiveComeBackPacket]
        @AvatarID BIGINT ,
        @GameArea INT
    AS
        BEGIN
            SET NOCOUNT ON;
            -- Type 1 2 3 
            -- 有没有领取过
            IF EXISTS ( SELECT  1
                        FROM    dbo.XXXDB
                        WHERE   AvatarID = @AvatarID
                                AND GameArea = @GameArea 
                                AND Type=0 )
                RETURN dbo.ReturnState_OtherStatus();
    
            RETURN dbo.ReturnState_Succeed();
            SET NOCOUNT OFF;
        END
    
    

    参考链接

    SQL Server标量函数

    SQLServer之创建标量函数

  • 相关阅读:
    20100720 14:14 转:BW十日谈之标准数据源
    BW会计年度期间转换出错
    SQL Server 2005 Logon Triggers 详细介绍
    作业输出文档维护
    windows 系统监视器 以及建议阀值
    linkedserver 的使用
    DAC 连接数据库需要做些什么
    SQL Server 2008新特性 Merge 详细见联机手册
    【20110406】提高数据库可用性需要注意的问题
    索引迁移
  • 原文地址:https://www.cnblogs.com/WenzhengLi/p/14296423.html
Copyright © 2011-2022 走看看