当一个存储过程参数接收一个Array时,我们可以用下面方法来处理,可以很方便实现。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
CREATE
PROCEDURE
[
dbo
]
.
[
usp_Prod_GetByType
]
(
@ArrayID NVARCHAR ( 100 )
)
AS
-- 处理传入参数
DECLARE @Params NVARCHAR ( 100 ) = REPLACE ( @ArrayID , ' , ' , ''' , ''' )
-- 变量SQL语句,需要使用EXEC来执行
EXECUTE ( ' SELECT * FROM [Prod] WHERE [Type] IN ( ''' + @Params + ''' ) ' )
(
@ArrayID NVARCHAR ( 100 )
)
AS
-- 处理传入参数
DECLARE @Params NVARCHAR ( 100 ) = REPLACE ( @ArrayID , ' , ' , ''' , ''' )
-- 变量SQL语句,需要使用EXEC来执行
EXECUTE ( ' SELECT * FROM [Prod] WHERE [Type] IN ( ''' + @Params + ''' ) ' )
在传入参考时,这个Array作为一个字符串传入即可
EXECUTE
[
dbo
]
.
[
usp_Prod_GetByType
]
@ArrayID
=
'
g1,g3,g6,g7,g17,g23
'