当使用存储过程接收一个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('张三,李四,王五,赵六', ',',''',''');

执行结果如下:

存储过程接收Array参数_sql语句