您的位置:首页 > 数据库

利用mssql存储过程处理“,”分隔字符串,并写入数据表

2010-08-09 14:03 302 查看
前几天我遇到一个问题,在处理程序文件下发过程中重复在数据库中生成一组数据,但操作过程中很可能会发生sqlconnect连接超时问题,于是用存储过程解决这个问题:

create procedure insertdocx(@p_struserid varchar(4000),@sdocid varchar(50))

as

--本存储过程处理用户发送文件下发功能

--定义输入参数:

--@p_struserid:输入userid以","分隔的字符串,

--如: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 失败
和 "利用mssql存储过程处理“,”分隔字符串,并写入数据表" 有关的数据库
编程小帖士:

strong>RAWTOHEX

RAWTOHEX
函数将一raw转换成十六进制字符表示的串值。
declare @m int --定位分隔符的位置

declare @n int --位置偏移
set @v_struserid=@p_struserid

set @return=0

set @n=1

set @m=charindex(',',@v_struserid)

while @m>0

begin

set @userid=substring(@v_struserid,@n,@m-@n)

--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 @n=@m+1

set @m=charindex(',',@v_struserid,@n)

end

return @return

go
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐