将varchar变量与IN运算符一起使用,其中包含int

时间:2015-10-10 19:07:57

标签: sql sql-server parameter-passing

这有效:

declare @ids varchar(50) = '1, 2, 3'
create table #test  (id int)
exec('insert into #test select userid from users where userid in(' + @ids + ')')

这不是:

declare @ids varchar(50) = '1, 2, 3'
create table #test  (id int)
insert into #test select userid from users where userid in(@ids)

它(显然有点)返回:

  

转换varchar值时转换失败' 1,2,3'数据   输入int。

是否有一种优雅的方法可以在不使用exec()的情况下使查询正常工作,就像我尝试在第二段代码中一样?

0 个答案:

没有答案