【发布时间】:2010-10-05 17:54:11
【问题描述】:
[更新:使用 SQL Server 2005]
您好,我想做的是使用逗号分隔的值 (id) 列表查询我的存储过程,以检索数据行。
我收到的问题是转换错误:
Conversion failed when converting the varchar value ' +
@PassedInIDs + ' to data type int.
我的 where 子句和错误中的语句是:
...
AND (database.ID IN (' + @PassedInIDs + '))
注意:database.ID 是 int 类型。
我一直在关注这篇文章:
http://www.sql-server-helper.com/functions/comma-delimited-to-table.aspx
但由于错误未完成。
在我的执行脚本中,我有:
...
@PassedInIDs= '1,5'
我在这里做错了吗? 感谢您的帮助。
【问题讨论】:
-
您使用的是什么 SQL?它不应该试图将该值转换为 int。你能展示更多的代码吗?
-
SQL Server 2005?副手,这应该工作。该错误看起来像是将 ' + @PassedInIDs + ' 视为字符串...您是否缺少引号?
-
缺少整个查询,我不能告诉你。当您使用动态 SQL 时,所有内容都会被引用,直到您对引用的字符串运行 exec。它在任何时候都不应该将 ' + @PassedInIDs + ' 视为文字字符串。在我看来,这就像错误出现在错误代码中的情况。
-
请显示整个查询 - 看起来您没有正确构建动态 sql 字符串...
-
casper...您所做的编辑可能会更改一段文字粘贴的代码。
标签: sql dynamic-sql delimiter delimited