传递过来一个变量,形如“a,b,c,d,e,” ,这个变量是由很多字符串组成的,由逗号分隔,然后,
对表中的字段name进行update,如果name字段的值,没有a,就update 表 set name = name + a,如果有a了,就不进行update了,接着对b判断是否update,道理一样。就是含有某字符了,就不update,没有就update原来的字段值加上这个字符。
写个存储过程,没搞出来还,
------解决思路----------------------
-- 。。。。。。。
create table test(id int , name varchar(100))
go
insert into test(id , name) values(1,'abc'),(2,'ad')
go
select * from test
go
create proc sp_data(@v varchar(100))
as
begin
declare @sql varchar(1000)
declare @tmp varchar(100)
while (len(@v) > 0 )
begin
set @tmp = substring(@v,1,charindex(',',@v,1)-1)
set @v = substring(@v,len(@tmp) + 2,len(@v))
update test set name = name + @tmp where name not like '%' + @tmp + '%'
end
end
go
sp_data 'a,b,c,d,e,f,m,'
go
select * from test
go
drop proc sp_data
go
drop table test
go
(2 行受影响)
id name
----------- ----------------------------------------------------------------------------------------------------
1 abc
2 ad
(2 行受影响)
(2 行受影响)
id name
----------- ----------------------------------------------------------------------------------------------------
1 abcdefm
2 adbcefm
(2 行受影响)