• 存储过程调用函数:将字符串拆分为表


    USE [riskmain]
    GO

    /****** Object: UserDefinedFunction [dbo].[fnSplit] Script Date: 2020/7/23 12:05:46 ******/
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO


    -- =============================================
    -- Author: <Author,,Name>
    -- Create date: <Create Date,,>
    -- Description: 将字符串拆分为表
    -- Modify: liuli 2013-9-28 9:49:40 判断为空情况
    -- =============================================
    CREATE FUNCTION [dbo].[fnSplit]
    (
    @string VARCHAR(max),
    @split VARCHAR(2)
    )
    RETURNS @t TABLE(col VARCHAR(MAX))
    AS


    BEGIN
    WHILE (CHARINDEX(@split, @string) <> 0)
    BEGIN
    INSERT @t
    (
    col
    )
    VALUES
    (
    SUBSTRING(@string, 1, CHARINDEX(@split, @string) -1)
    )
    SET @string = STUFF(@string, 1, CHARINDEX(@split, @string), '')
    END
    IF (@string <> '')
    BEGIN
    INSERT @t
    (
    col
    )
    VALUES
    (
    @string
    )
    END
    RETURN
    END
    GO

    存储过程调用该函数:

    ALTER PROCEDURE [Base].[prVehicleShareMointDel]
    @ModifiedUserID int
    ,@IDs nvarchar(max)
    ,@O_RETURN INT OUTPUT
    AS
    BEGIN
    SET NOCOUNT ON;

    UPDATE [Base].[VehicleShareMoint]
    SET
    ModifiedUserID=@ModifiedUserID
    ,[ModifiedTime]=GETDATE()
    ,[IsValid]=0
    WHERE EXISTS
    (
    SELECT 1
    from dbo.fnSplit(@IDs,',') AS B
    WHERE B.col=ID/*ID代表[Base].[VehicleShareMoint]中的ID*/

    @IDs:该值为前端传过来的值

    );
    IF @@ROWCOUNT>0
    BEGIN
    SET @O_RETURN=1;
    END
    ELSE
    BEGIN
    SET @O_RETURN=0;
    END
    END;

    GO

  • 相关阅读:
    Server 对象
    Response 对象
    bzoj 5252: [2018多省省队联测]林克卡特树
    bzoj 2167: 公交车站
    bzoj 5315: [Jsoi2018]防御网络
    bzoj 5319: [Jsoi2018]军训列队
    bzoj 4161: Shlw loves matrixI
    bzoj 4942: [Noi2017]整数
    bzoj 2648: SJY摆棋子
    kd-tree 小结
  • 原文地址:https://www.cnblogs.com/ypyp123/p/13365563.html
Copyright © 2020-2023  润新知