Custom type을 정의하면 Stored procedure(이하 SP)에 List(or Array) 형태의 정보를 전달하여 처리 할 수 있다.
먼저, List로 전달할 정보를 담을 Custom table type을 정의한다.
객체 정보를 담는 Class를 정의한다고 생각하면 된다.
CREATE TYPE CodeList
AS TABLE
(
Code varchar(32)
);
SP에 변수를 type을 위에서 만든 Custom type으로 정의한다. 그러면, SP는 정의된 Table 정보를 받아 처리 할 수 있게 된다.
CREATE PROCEDURE GetInfoByCodes
@pCodeList AS CodeList READONLY
AS
BEGIN
SET NOCOUNT ON;
SELECT * FROM InfoTable
WHERE Code in (SELECT * FROM @pCodeList)
END
GO
임의로 Custom table type으로 만든 변수를 만들어 다음과 같이 SP를 실행해 볼 수 있다.
DECLARE @pCodes CodeList
INSERT INTO @pCodes VALUES('A40274208')
INSERT INTO @pCodes VALUES('A10028014')
INSERT INTO @pCodes VALUES('A56087115')
EXEC GetInfoByCodes @pCodeList = @pCodes