MSSQL PROC ARRAY
MSSQL 에서는 배열을 처리할 수 없습니다.
따라서 다음과 같은 방식으로 우회하여 처리하는 방법이 있습니다.
client 에서 comma 로 구분된 자료를 Stored Procedure 로 보내면
이 SP 에서는 콤마로 구분된 자료들을 하나씩 분리하여 원하는
기능에 넣어 사용하게 되는 방법입니다. 참조되시길...
CREATE PROCEDURE pro_array @DATA VARCHAR(1000)
AS
BEGIN
/*
- 최대 1000 자리수의 값을 받습니다. 이 길이는 조정 가능
- 콤마로 구분된 PK항목값 들을 UPDATE 구분에서 활용하는 예제입니다.
*/
WHILE CHARINDEX(',',@DATA)<>0
BEGIN
UPDATE 테이블명 SET 항목명 = '선택' WHERE PK항목명 = SUBSTRING(@DATA,1,CHARINDEX(',',@DATA)-1)
SET @DATA=SUBSTRING(@DATA,CHARINDEX(',',@DATA)+1,LEN(@DATA))
IF CHARINDEX(',',@DATA)=0
BEGIN
UPDATE 테이블명 SET 항목명 = '선택' WHERE PK항목명 = SUBSTRING(@DATA,1,LEN(@DATA))
END
END
END
--> 사용법 : EXEC pro_array '1001,1004,1102,1999,9999'
[출처] mssql Stored Procedure에서 배열 사용하는 트릭|작성자 시골사람