当使用存储过程接收一个Array参数时,我们可以用下面方法来实现,sql如下。
1 CREATE PROCEDURE [dbo].[str_to_array]
2 (
3 @names NVARCHAR(100)
4 )
5 AS
6 -- 处理传入参数
7 DECLARE @Params NVARCHAR(100) = REPLACE(@names, ',',''',''')
8 -- 变量SQL语句,使用EXEC来执行
9 EXECUTE('SELECT * FROM [Student] WHERE [name] IN (''' + @Params + ''')')
执行存储过程命令,如下:
EXECUTE [dbo].[str_to_array] @names = '张三,李四,王五,赵六'
模拟执行:
select REPLACE('张三,李四,王五,赵六', ',',''',''');
执行结果如下: