The Power of Knowladge

explore - brainstorm - share
See also: Other Geeks@INDC

News

where is the news

Community Web Site

July 2008 - Posts

Membuat Parameter Table di SQL
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 @NewEmployees

Demikian sedikit pengenalan tentang new Enhancement di SQL 2008, selamat mencoba

 
 
Share this post: | | | |