关于在存储过程中把字符串拆分成数组,然后分别存入表中的问题。
存储过程中:
@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)