일단 테스트를 위한 환경을 만들자. 앞선 내용과 같다. {{{ use tempdb go --drop table source_table create table source_table ( id varchar(10) , pw varchar(10) ); --drop table target_table create table target_table ( id varchar(10) , pw varchar(10) ); insert source_table values ('dwa', '1234') , ('yasi', '4567') , ('lk', 'lk123') --new syntax, T-SQL Row Constructors go }}} 사용자 정의 타입을 만들고, 저장 프로시저에서 Row Set을 매개변수로 받을 수 있다. 예를 들어 예전에는 입력 매개변수로 '1,2,3,4'와 같은 구분자를 가진 문자열을 파싱하여 테이블 형태로 만들었으나 SQL Server 2008에서는 이 방식을 사용하면 된다. {{{ create type id as table --new syntax, Table Value Type ( id varchar(10) null ); go create proc table_value_param_test @table id readonly as begin declare @i int = 10; --new syntax select * from source_table where id in (select id from @table) end go declare @param as id; insert @param(id) values('dwa'), ('yasi'); exec table_value_param_test @param; /* id pw ---------- ---------- dwa 1234 yasi 4567 */ }}}