Table Vaued Parameters ne demek? SQL Server 2008 de stored procedurelerde parametre olarak tablo kullanabiliriz demek. Peki bunun ne faydası var yada niçin gerekli? Bu sorunun cevabı uygulamaya göre değişebilir yada bunun yerine farklı çözümler bulup zaten kullananlar da olabilir. Sanırım bir örnekle nasıl kullanılabilceğini anlatarak niçin kullanılabilirin de cevabını bulabiliriz.
CREATE TYPE TTArray AS TABLE
(
IDX INT IDENTITY(1,1),
VAL VARCHAR(50)
)
TTArray isminde TABLE TYPE tanımlamış olduk.
CREATE PROCEDURE usp_ShowArrayValues
@Prm TTArray READONLY
AS
BEGIN
SELECT * FROM @Prm
END
Bu procedure de ise parametre olarak kullanmış olduk. Dikkat tanımlarken kullandığımız READONLY önemlidir. Procedure parametrenin içeriğini Select ediyor.
Kullanımla ilgili sınırlamalar
-User Defined Function'larda kullanılamaz sadece Procedure'lerde kullanılabilir
-READONLY anahtar kelimesi kullanılmalı, bunun anlamı parametrenin değerleri procedure içerisinden değiştirilemez
-ALTER edilemez
Denebilir ki ee ben ne anladım bu işten
Yersen uzay eriği...(G.O.R.A.'dan alıntıdır)
Belki ilerde bu konu üzerine daha da yoğunlaşıp efektif ve kullanışlı bir hale getirebilirler.