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