向存储过程中传递小型数据集合的方法,留下来备忘(非XML)
首先定义一个泛型List,如busyoList用以存放需要传递的部署信息
然后将List型的数据拼接成逗号隔开的字符串传入到存储过程的参数中

var paraValue = String.Join(",", busyoList.ToArray));
SqlCommand.Parameters.Add("BUSYO_LIST", SqlDbType.VarChar, 500).Value = paraValue;


存储过程中将字符串分割并存放到临时表中,代码如下
CREATE PROCEDURE [SP_FurikaeDenpyo]
@BUSYO_LIST VARCHAR(500)
AS
BEGIN
-- 一時テーブル部署コードを作成
CREATE TABLE #BUSYOLIST
(
BUSYOCD VARCHAR(5) NOT NULL
)
-- 部署コードを一時テーブルに挿入
DECLARE @INSERT_BUSYO VARCHAR(1000)
SET @INSERT_BUSYO =' INSERT INTO #BUSYOLIST(BUSYOCD) SELECT '''+REPLACE(@BUSYO_LIST,',','''UNION SELECT''')+''''
EXEC(@INSERT_BUSYO)
END

Back