这有效:
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()
的情况下使查询正常工作,就像我尝试在第二段代码中一样?