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

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

posted @   *每天多学一点点*  阅读(195)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示