我有一个存储过程。在这个过程中有一段代码看起来像
...WHERE someParam IN (1,2)...
我应该抽象这部分,因为应该考虑未定义数量的参数(不仅仅是 1 或 2)。我从 vb.net 代码中获取此参数列表作为 cvs 字符串(即“1,2”或“78, 109”等)。实际上我的情况是这样的:
DECLARE @IdParam varchar(100)
SET @IdParam = '1,2'
...
...WHERE someParam IN (@IdParm)...
但是这段代码显然会给我一个错误:
将 varchar 值“1,2”转换为数据类型 int 时转换失败。
我可以做些什么来达到我的目标并让 SQL 引擎保持安静?如果存在最佳解决方案,我可以考虑修改现有的 VB 代码。
编辑1:我不会使用链接帖子的那个丑陋的解决方案!