读书人

求一变量使用有关问题

发布时间: 2012-11-01 11:11:33 作者: rapoo

求一变量使用问题。
declare @abc varchar(1000)
set @abc='ADH00018083,ADH00018103'

declare @def varchar(5000)
set @def=replace(''''+@abc+'''',',',''',''')
这一步其实是想把'ADH00018083,ADH00018103'改变成'ADH00018083','ADH00018103'的格式。

然后
update kkk set ggg=1 where djbh in (@def)

问题在最后update 的时候,djbh in (@def)得不到数据,

而如果我使用select @def 却能得到数据



[解决办法]
这个需要拼接sql语句才能执行了。

你把update kkk set ggg=1 where djbh in (@def)
改写成:
declare @sql varchar(6000) = 'update kkk set ggg=1 where djbh in (' + @def +')'
exec @sql
应该就能执行了。



[解决办法]
动态执行
[解决办法]

探讨

declare @abc varchar(1000)
set @abc='ADH00018083,ADH00018103'
set @abc=replace(@abc,',',''',''')
set @abc=''''+@abc+''''
print @abc

--结果
--'ADH00018083','ADH00018103'

记住拼字符串的时候单引号变为双引号

读书人网 >SQL Server

热点推荐