Hi All,
SQL Server 2008 R2 yang merupakan rilis terbaru SQL Server telah tersedia sejak beberapa waktu dengan banyak fitur baru yang sangat menarik. Untuk menyambut SQL Server 2008 R2, kami mengadakan sebuah kompetisi berhadiah sebuah MSDN Subscription Ultimate Not For Resale senilai $11,899 untuk 3 orang pemenang!
Caranya:
Kompetisi ini terbuka untuk umum dan berlangsung sampai 30 September 2010. Pemenang yang beruntung akan diumumkan pada 1 Oktober 2010, berdasarkan banyaknya point yang diraih.
Apabila Anda belum memiliki blog di SQLServer-Indo, segera daftar dengan cara mengirim e-mail kepada Kiki Rizki Noviandi di kiki.rizki.noviandi@live.com
Sistem penghitungan: 1 blog bernilai 2 point, blog dengan tambahan sample code akan mendapatkan 2 point tambahan. Keputusan dewan juri tidak dapat diganggu gugat.
Untuk mengetahui lebih detail mengenai MSDN Subscription, dapat melihat disini.
Pasti kita sering mengalami kebutuhan untuk dapat melakukan passing data dalam jumlah banyak kedalam database kita, untuk menangani masalah ini biasanya kita melakukan pengiriman data menggunakan tipe data XML atau menggunakan Cursor di sisi SQL Server.
nah di SQL server 2008 kini memungkinkan kita untuk bisa melakukan passing parameter data ke Store procedure dengan menggunakan Table Valued Parameter (TVP), TVP ini memudahkan kita untuk mengirimkan parameter data sesuai dengan struktur data yang kita inginkan dalam jumlah yang tidak terbatas. sehingga akan memungkinkan melakukan pembuatan dan pemanggilan store procedure dengan cara seperti di bawah ini
create proc ins_data (@t table (a int)) as
(
--- Create Logic Script di sini
)
TVP (table value parameter) memiliki kelebihan sebagai berikut :
-
Memungkinkan membuat tipe data untuk parameter SP berupa tipe data Tabel
-
Bisa menjadi parameter input pada SP dan Function di SQL Server
-
Scope dari TVP adalah di dalam SP/Function Body sehingga tidak dikenali di luar SP/Function lainnya di luar scope tersebut
-
Lebih cepat dalam pemrosesan data dalam ukuran besar
-
Memiliki karakteristik seperti Bulk Copy/ BCP dalam server
Berikut cara mengimplementasikan TVP di SQL Server 2008
1. Create TVP di dalam database yang kita inginkan
USE AdventureWorks
GO
CREATE TYPE EmployeeTableType AS TABLE
(EmpID INT, EmpName nvarchar(100), EmpEmail nvarchar(100))
2. Create Store procedure / Function yang menggunakan TVP sebagai parameter
USE AdventureWorks
GO
CREATE PROCEDURE NewEmployee(@EmployeeDetails EmployeeTableType READONLY)
As
BEGIN
INSERT INTO dbo.Employee
SELECT * FROM @EmployeeDetails
END
3.Untuk memanggil TVP dilakukan dengan cara mendeclarasikan variable bertipe TVP
use AdventureWorks
Go
DECLARE @NewEmployees EmployeeTableType
4. Isi data ke variabel TVP
INSERT INTO @NewEmployees
VALUES(1,'John McLean','JohnMcLean@contoso.com')
INSERT INTO @NewEmployees
VALUES(2,'Bob Smith','BobSmith@contoso.com')
INSERT INTO @NewEmployees
VALUES(3,'Ted Connery','TedConnery@contoso.com')
5. Panggil SP dan passing parameter TVP
EXECUTE NewEmployee @NewEmployee
selamat mencoba (KN)