SQL 存储过程 where in 的问题 带参数的!!
@id是VARCHAR@name是VARCHAR@id格式是3,1,2uid是Int主键写法一declare@SelectTextvarchar(1000)select@...
@id 是VARCHAR @name 是VARCHAR @id 格式是 3,1,2
uid 是Int 主键
写法一
declare @SelectText varchar(1000)
select @SelectText = 'update ffzs_unit set unitname='+@name+' where uid in ('+@id+')'
execute( @SelectText)
错误: 如果 @name 是 “条”的 话
错误信息:列名 '条' 无效。
方法二
update ffzs_unit set unitname=@name where uid in (@id)
错误: varchar 值 ‘3,1,2’转换为数据类型为 int 的列时发生语法错误
求:
怎么才能正常更新!!!!!!!
方法二肯定不行,@id是字符串不是集合
方法一中要这样写:
set @SelectText = 'update ffzs_unit set unitname='''+@name+''' where uid in ('+@id+')'
对于SQL中,字符串要有单引号
回答者:curllion - 同进士出身 六级 4-7
这个也不可以!
'''+@name+'''
引号不明确。测试了任何加引号情况都不行 展开
uid 是Int 主键
写法一
declare @SelectText varchar(1000)
select @SelectText = 'update ffzs_unit set unitname='+@name+' where uid in ('+@id+')'
execute( @SelectText)
错误: 如果 @name 是 “条”的 话
错误信息:列名 '条' 无效。
方法二
update ffzs_unit set unitname=@name where uid in (@id)
错误: varchar 值 ‘3,1,2’转换为数据类型为 int 的列时发生语法错误
求:
怎么才能正常更新!!!!!!!
方法二肯定不行,@id是字符串不是集合
方法一中要这样写:
set @SelectText = 'update ffzs_unit set unitname='''+@name+''' where uid in ('+@id+')'
对于SQL中,字符串要有单引号
回答者:curllion - 同进士出身 六级 4-7
这个也不可以!
'''+@name+'''
引号不明确。测试了任何加引号情况都不行 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询