TVP(테이블 반환 매개 변수)는 Table 구조의 Type을 생성 후 해당 타입을 매개변수 형태로 사용합니다.
제가 사용한 경우는 WHERE 절에 사용되는 스칼라 함수 내에서 CTE가 따로 돌고 있는 상황이었습니다. 꼭 사용해야 하는 경우라서.
프러시저나 함수등에 매개변수 형태도 던져 사용하거나 반환값으로 사용 가능합니다.
자세한 사항은 아래 링크를 확인해 주세요.
https://msdn.microsoft.com/ko-kr/library/bb510489(v=sql.105).aspx
USE AdventureWorks2008R2;
GO
/* Create a table type. */
CREATE TYPE LocationTableType AS TABLE
( LocationName VARCHAR(50)
, CostRate INT );
GO
/* Create a procedure to receive data for the table-valued parameter. */
CREATE PROCEDURE usp_InsertProductionLocation
@TVP LocationTableType READONLY
AS
SET NOCOUNT ON
INSERT INTO [AdventureWorks2008R2].[Production].[Location]
([Name]
,[CostRate]
,[Availability]
,[ModifiedDate])
SELECT *, 0, GETDATE()
FROM @TVP;
GO
/* Declare a variable that references the type. */
DECLARE @LocationTVP
AS LocationTableType;
/* Add data to the table variable. */
INSERT INTO @LocationTVP (LocationName, CostRate)
SELECT [Name], 0.00
FROM
[AdventureWorks2008R2].[Person].[StateProvince];
/* Pass the table variable data to a stored procedure. */
EXEC usp_InsertProductionLocation @LocationTVP;
GO
'Database > MSSQL' 카테고리의 다른 글
Database 자동 생성 스크립트 (0) | 2017.05.23 |
---|---|
[MSSQL] 전체 데이터베이스 파일 정보 조회 (전체 DB 파일 목록 정보) (0) | 2017.03.15 |
MSSQL 에서 CRUD 기본 스크립트를 생성해 주는 프러시저 (0) | 2016.06.20 |
MSSQL 운영팁 (0) | 2012.09.26 |
MS-SQL Table 정의서 자동 생성 (0) | 2012.07.03 |