关于存储过程的一个中 in () 语句的一个错误

zeme 2006-04-17 03:22:58
update res_class_list set template_id=@DefTemplateId where template_id in (@IdList)

上述存储过程语句,执行出错,而用exec()的话缺可以执行

@IdList varchar(1000)='1,2,3'
@Idlist 是上述格式的varchar

错误信息如下:

服务器: 消息 245,级别 16,状态 1,过程 ResTemplateMdy,行 11
[Microsoft][ODBC SQL Server Driver][SQL Server]将 varchar 值 '1,2,3' 转换为数据类型为 int 的列时发生语法错误。
...全文
105 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xeqtr1982 2006-04-17
  • 打赏
  • 举报
回复
必须用动态SQL
zeme 2006-04-17
  • 打赏
  • 举报
回复
确实用exec就可以的
就是不知为什么直接运行就不行
子陌红尘 2006-04-17
  • 打赏
  • 举报
回复
EXEC('update res_class_list set template_id='+rtrim(@DefTemplateId)+' where template_id in ('+@IdList+')')

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧