首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一变量使用有关问题

2012-11-01 
求一变量使用问题。declare @abc varchar(1000)set @abcADH00018083,ADH00018103declare @def varchar(5

求一变量使用问题。
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'

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

热点排行