select * from [table] where [id] in (''@1'', ''@2'')
exec 'select * from [table] where [id] in (' + @1 + ', ' + @2 +')'
ALTER PROCEDURE [dbo].[test_proc] @in -- in 里面的条件 形如:1,2,3 AS BEGIN DECLARE @sql VARCHAR(4000); DECLARE @in2 VARCHAR(4000); SET @sql = 'SELECT * FROM [table] where [id] in ('+@in2+')'; EXEC(@sql); END
-- 应该正确: ALTER PROCEDURE [dbo].[test_proc] @in -- in 里面的条件 形如:1,2,3 AS BEGIN DECLARE @sql VARCHAR(4000); SET @sql = 'SELECT * FROM [table] where [id] in ('+@in+')'; EXEC(@sql); END
把这句 select * from [table] where [id] in ('1', '2') 变一下形式也可以,在传参数时写成 1,2 如下: set @s='1,2' select * from [table] where charindex(','+[id]+',',','+@s+',')>0即 select * from [table] where charindex(','+[id]+',',',1,2,')>0
ALTER PROCEDURE [dbo].[test_proc] @in -- in 里面的条件 形如:1,2,3
AS
BEGIN
DECLARE @sql VARCHAR(4000);
DECLARE @in2 VARCHAR(4000);
SET @sql = 'SELECT * FROM [table] where [id] in ('+@in2+')';
EXEC(@sql);
END
ALTER PROCEDURE [dbo].[test_proc] @in -- in 里面的条件 形如:1,2,3
AS
BEGIN
DECLARE @sql VARCHAR(4000);
SET @sql = 'SELECT * FROM [table] where [id] in ('+@in+')';
EXEC(@sql);
END
select * from [table] where [id] in ('1', '2')
变一下形式也可以,在传参数时写成 1,2
如下:
set @s='1,2'
select * from [table] where charindex(','+[id]+',',','+@s+',')>0即
select * from [table] where charindex(','+[id]+',',',1,2,')>0