• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

利用MSSQL存储过程处理“,”分隔字符串_sqlserver

sqlserver 搞代码 3年前 (2018-06-17) 135次浏览 已收录 0个评论

前几天我遇到一个问题,在处理程序文件下发过程中重复在数据库中生成一组数据,但操作过程中很可能会发生SqlConnect连接超时问题,于是用存储过程解决这个问题:
create procedure InsertDocx(@p_struserid varchar(4000),@sDocid varchar(50))
AS
–本存储过程处理用户发送文件下发功能
–定义输入参数:
–@p_struserid:输入userid以”,”分隔的字符串,

http://www.gaodaima.com/?p=36263利用MSSQL存储过程处理“,”分隔字符串_sqlserver

–如:00001,00002,00029,00030,00062
–@sDocid:输入主文档Doc的id值
–实现拆分userid以”,”分隔的字符串后,insert到docx表中

declare @v_struserid varchar(4000)
declare @userid varchar(50)
declare @v_docid varchar(50)
declare @return int    –数据处理结果返回值:0成功,1 失败
declare @m int    –定位分隔符的位置
declare @n int    –位置偏移

SET @[email protected]_struserid
SET @return=0
SET @n=1
SET @m=CHARINDEX(‘,’,@v_struserid)

WHILE @m>0
    BEGIN
        set @userid=substring(@v_struserid,@n,@[email protected])
        –print @userid
        begin
            insert into IMDOCX (DOCXID,DOCXUSERID,DOCXDOCID,DOCXINSERTTIME,DOCXREADSTATE)
            values (‘3′,@userid,@v_docid,getdate(),’未阅’)
            if @@rowcount = 0
            set @return=1
        end
       
        set @[email protected]+1
        set @m=CHARINDEX(‘,’,@v_struserid,@n)
    END

return @return

GO

欢迎大家阅读《利用MSSQL存储过程处理“,”分隔字符串_sqlserver,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址