[MSSQL]自定义分割函数

本文探讨在处理批量插入数据库时,如何通过自定义SQL分割函数提高效率。方法二是首选,它将多个项目一次性传入存储过程,利用游标进行处理。主要挑战在于创建一个能够处理多层分隔的函数,例如工号-名字的组合,以便有效地循环插入数据库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于要写一个加班程序:

需要处理到的一个问题就是批量插入:

listbox的项目插入到数据库

方法一:循环调用存储过程

方法二:一次性传入参数到存储过程,存储过程中游标处理

方法二的方案效率比较高:

 

但需要解决的一个问题是:如何分割函数

多层分隔函数

工号1-名字1,工号2-名字2,。。。。。

实现循环插入数据库:

/*
    分割函数的处理过程
    输入参数:
    @source需要处理的字符串
    @@separte分割字符
*/
CREATE function str_split(@source varchar(8000),@separte varchar(10)) 
  returns @temp table(F1 varchar(100)) 
as 
begin
 declare @i int
 set @source=rtrim(ltrim(@source))
 set @i=charindex(@separte,@source)
 while @i>=1
 begin
   insert @temp values(left(@source,@i-1))
   set @source=substring(@source,@i+1,len(@source)-@i)
   set @i=charindex(@separte,@source)
 end
 if @source<>'' 
  begin
     insert @temp values(@source)
  end
 re
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值