分隔字符串的存储过程

本文介绍了一个SQL存储过程,用于将包含多个元素的字符串通过指定分隔符进行拆分,并将每个元素插入到指定的数据库表中。该存储过程可以有效处理字符串数据并简化数据录入流程。

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

------------------------------------------------------------------------

--       Author : navy887(草根)

--       用途:分隔字符串的存储过程

--       使用方法:EXEC DivideString 'dd,aaa,bbb,ccc',',','表名'

--       转载请注明出处

------------------------------------------------------------------------

CREATE PROCEDURE DivideString
(
@String NVARCHAR(1210),  -- 要分隔的字符串
@SPLITCHAR NVARCHAR(10) = ',', -- 默认分隔字符
@TableName NVARCHAR(30) = 'table'  --默认表名
)
AS
DECLARE @L INT -- 第一个分隔字符的位置
DECLARE @S INT -- 第二个分隔字符的位置
SET @L = 0
SET @S = CHARINDEX(@SPLITCHAR, @String, @L)

WHILE @L <= LEN(@String)
BEGIN
 DECLARE @ColName NVARCHAR(50)
 IF @S = 0 SET @S = LEN(@String) + 1 -- 如果到最后一个字符串那么第二个分隔字符的位置就是这个字符串的长度加一
 SET @ColName = SUBSTRING(@String, @L, @S - @L) -- 取值
 SET @L = @S + 1
 SET @S = CHARINDEX(@SPLITCHAR, @String, @L)
 IF LTRIM(RTRIM(@ColName)) = '' CONTINUE -- 如果是空字符串就跳过
 DECLARE @SQL NVARCHAR(1000)
 SET @SQL ='INSERT INTO ' + @TableName + '(tcname) select ''' +@ColName+'''' --插入表的语句,根据自己需求修改
 --EXEC (@SQL)
 Print @sql
END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值