日期:2014-05-19  浏览次数:20589 次

关于在存储过程中把字符串拆分成数组,然后分别存入表中的问题。


存储过程中:

        @MessageSendToDepartCode   NVarChar   (4000)

此参数的值实际是这样的:1006,1008,1990,4666,3333  
也有可能只有一个数,如:   2009

现在我想这做:

把这个参数以   ", "   为分界,拆成数组,然后,把每个数字插入表   “message”   中,

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

最后   表     messgae   中,就是这样的:

ID       messageCode

2         1006
3         1008
4         1990
5         4666

在存储过程中,要怎么写呢?


------解决方案--------------------
create table messgae(ID int identity, messageCode varchar(10))
go

declare @MessageSendToDepartCode NVarChar (4000), @sql varchar(8000)
select @MessageSendToDepartCode= '1006,1008,1990,4666,3333 ', @sql= ' insert messgae(messageCode) select '
select @sql=@sql+replace(@MessageSendToDepartCode, ', ', ' union all select ')
exec(@sql)


select * from messgae

--result
ID messageCode
----------- -----------
1 1006
2 1008
3 1990
4 4666
5 3333

(5 row(s) affected)