Resource from StackOverflow
使用存储过程,如何传递数组参数?
1.分割解析字符串,太麻烦
2.添加Sql Server 自定义类型 sp_addtype
问题需求:需要向SP 传递数组类型的参数
select * from Users where ID IN (1,2,3 )
Sql Server 数据类型 并没有数组,但是允许自定义类型,通过 sp_addtype
添加 一个自定义的数据类型,可以允许c# code 向sp传递 一个数组类型的参数
但是不能直接使用 sp_addtype,而是需要结构类型的数据格式,如下:
CREATE TYPE dbo.IDList
AS TABLE
(
ID INT
);
GO
有点像个是一个临时表,一种对象,这里只加了ID
在sp 中可以声明自定义类型的参数
CREATE PROCEDURE [dbo].[DoSomethingWithEmployees]
@IDList AS dbo.IDList readonly