User Defined Table Type ve Table Valued Parameter

User Defined Table Type ile bir tablonun yapısını tutabiliriz. Stored Procuder ya da Function’lar için table valued parameter tanımlayarak kullanabiliriz. Stored Procedure ya da Function içinde temporay tablo tanımlamak yerine bu yapıları kullanabiliriz.

Aşağıda örnek kullanımını görebilirsiniz.

USE AdventureWorks2008R2;
GO

/* table type oluşturuluyor. */
CREATE TYPE LocationTableType AS TABLE 
( LocationName VARCHAR(50)
, CostRate INT );
GO

/* table-valued parameter ile user defined table type'ı kullanıyoruz. Table valued parameter bu örnekte @TVP   */
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

/* Oluşturduğumuz table type tipinde bir değişken tanımlıyoruz */

DECLARE @LocationTVP 
AS LocationTableType;

/* Bu değişkene veri girişi yapıyoruz. */
INSERT INTO @LocationTVP (LocationName, CostRate)
    SELECT [Name], 0.00
    FROM 
    [AdventureWorks2008R2].[Person].[StateProvince];

/* stored procedure'e parametre olarak bu değişkeni vererek çalıştırıyoruz*/
EXEC usp_InsertProductionLocation @LocationTVP;
GO

 

Kaynak https://msdn.microsoft.com/en-us/library/bb510489(v=sql.105).aspx

Bir cevap yazın

Your email address will not be published. Required fields are marked *.

*
*

Lütfen captcha kodunu giriniz *

Lütfen Resimdeki Kodu Boşluğa Giriniz.
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>