/********************************************************************************************
-- Title : [2k8] 사용자 정의 테이블 형식 이용한 파라미터 전달(TVP)
-- Reference : dbnuri.com 이장래 형님
-- Key word : 테이블 파라미터 테이블파라미터 table parameter table data type tvp
                  table-valued parameter 사용자 형식 사용자 타입 사용자형식 사용자타입
********************************************************************************************/
USE Tempdb;  
GO  


-- 테이블 생성
-- drop table member2;
CREATE TABLE Member2 (  
 MemID VARCHAR(10) PRIMARY KEY,  
 MemName NVARCHAR(10),  
 MemMail VARCHAR(100)  
);


-- 사용자 정의 테이블 데이터 형식 만들기  
CREATE TYPE MemberTableType AS TABLE (  
 MemID VARCHAR(10),   
 MemName NVARCHAR(10),   
 MemMail VARCHAR(100)  
);


-- 저장 프로시저 만들기  
CREATE PROCEDURE usp_InsertMember2  
    @MemList MemberTableType READONLY  /* READONLY 속성을 필히 지정해야 함 */
AS   
    SET NOCOUNT ON 
    INSERT INTO Member2(MemID, MemName, MemMail)  
        SELECT * FROM  @MemList 
GO 


-- 프로시저 수행
DECLARE @MemberTVP AS MemberTableType;
 
INSERT INTO @MemberTVP (MemID, MemName, MemMail)   
VALUES('jang', N'이장군', 'jgoon@sample.com');  
INSERT INTO @MemberTVP (MemID, MemName, MemMail)   
VALUES('jane', N'박제인', 'jane@sample.com');  
INSERT INTO @MemberTVP (MemID, MemName, MemMail)   
VALUES('tomy', N'정토미', 'jtomy@sample.com');
    
EXEC usp_InsertMember2 @MemberTVP;  


-- 확인
SELECT * FROM Member2;


-------------------------------------------------------------------------------------------------------------

CREATE TYPE tp_key_list AS TABLE
(
[key] [bigint] NOT NULL,
PRIMARY KEY CLUSTERED
    (
[key] ASC
    ) WITH (IGNORE_DUP_KEY = OFF)
)

+ Recent posts