Selasa, 20 September 2011

Stored Procedure, Function, dan Trigger pada SQL

Nama / Nim : Gerry Rinovel Harimu / 10410100219
Dosen          : Tan Amelia
Tugas           : Stored Procedure, Function, dan Trigger pada SQL

Stored Procedure
Stored Procedure adalah sekelompok Transact-SQL dikompilasi ke dalam rencana eksekusi tunggal.




Microsoft ® SQL Server ™ 2000 prosedur yang tersimpan kembali data dalam empat cara:
·         Output parameter, yang dapat kembali baik data (seperti integer atau nilai karakter) atau variabel kursor (kursor adalah hasil set yang dapat diambil satu baris pada satu waktu). 
·         Kembali kode, yang selalu nilai integer. 
·         Hasil A ditetapkan untuk setiap pernyataan SELECT yang terkandung dalam prosedur yang tersimpan atau prosedur tersimpan lain yang disebut dengan prosedur yang tersimpan. 
·         Sebuah kursor global yang dapat direferensikan di luar prosedur yang tersimpan.

Prosedur yang tersimpan membantu dalam mencapai implementasi yang konsisten di seluruh logika aplikasi. Pernyataan SQL dan logika yang dibutuhkan untuk melakukan tugas yang biasa dilakukan dapat dirancang, kode, dan diuji sekali dalam prosedur yang tersimpan. Setiap aplikasi perlu melakukan tugas yang kemudian dapat hanya menjalankan prosedur yang tersimpan. Coding logika bisnis ke dalam prosedur yang tersimpan tunggal juga menawarkan satu titik kontrol untuk memastikan bahwa aturan bisnis dengan benar ditegakkan.
Prosedur yang tersimpan juga dapat meningkatkan kinerja. Banyak tugas diimplementasikan sebagai serangkaian pernyataan SQL. Logika kondisional diterapkan pada hasil dari pernyataan SQL pertama menentukan yang berikutnya pernyataan SQL dijalankan. Jika pernyataan-pernyataan SQL dan logika kondisional yang ditulis ke dalam prosedur yang tersimpan, mereka menjadi bagian dari rencana eksekusi tunggal pada server. Hasil tidak harus dikembalikan kepada klien untuk memiliki logika kondisional diterapkan; semua pekerjaan dilakukan di server. Pernyataan JIKA dalam contoh ini menunjukkan menanamkan logika kondisional dalam prosedur untuk menjaga dari mengirimkan hasil set untuk aplikasi:

IF (@QuantityOrdered < (SELECT QuantityOnHand FROM Inventory WHERE PartID = @PartOrdered) ) BEGIN -- SQL statements to update tables and process order. END ELSE BEGIN -- SELECT statement to retrieve the IDs of alternate items -- to suggest as replacements to the customer. END

Aplikasi tidak perlu untuk mengirimkan semua pernyataan SQL dalam prosedur: mereka harus mengirimkan hanya Execute atau HUBUNGI pernyataan berisi nama prosedur dan nilai-nilai parameter.
Prosedur yang tersimpan juga dapat melindungi pengguna dari perlu tahu rincian tabel dalam database. Jika satu set prosedur yang tersimpan mendukung semua fungsi bisnis pengguna perlu melakukan, pengguna tidak perlu mengakses tabel secara langsung, mereka hanya dapat menjalankan prosedur yang tersimpan bahwa model proses bisnis dengan yang mereka kenal.

Sebuah ilustrasi dari penggunaan prosedur yang tersimpan adalah prosedur sistem SQL Server disimpan digunakan untuk melindungi pengguna dari tabel sistem. SQL Server termasuk satu set prosedur sistem disimpan yang namanya biasanya mulai dengan sp_. Prosedur sistem ini disimpan mendukung semua tugas-tugas administratif yang dibutuhkan untuk menjalankan sistem SQL Server. Anda dapat mengelola sistem SQL Server menggunakan Transact-SQL administrasi terkait pernyataan (seperti CREATE TABLE) atau sistem prosedur yang tersimpan, dan tidak perlu untuk langsung memperbarui tabel sistem.


Functions
Functions
Fungsi memungkinkan Anda mengganti dan akses string dan tanggal di SQL Server. Anda dapat memanggil mereka melewati kali, tabel, tanggal, dan variabel lainnya, dan mendapatkan hasil kembali.

 

Fungsi umum SQL Server

Fungsi-fungsi ini adalah roti dan mentega dari prosedur Anda disimpan dan dilihat:
·         SQL Server Fungsi Agregat – seperti COUNT, MIN, MAX
·         SQL Server Fungsi Tanggal – seperti DATEPART, DATEADD dan DATEDIFF
·         Fungsi SQL Server kursor - seperti @ @ FETCH, @ @ CURSOR_ROWS

Membuat fungsi user-defined di SQL Server 2008 R2. Sebuah fungsi user-defined adalah runtime bahasa Transact-SQL atau umum (CLR) rutin yang menerima parameter, melakukan tindakan, seperti perhitungan yang kompleks, dan mengembalikan hasil dari tindakan itu sebagai suatu nilai. Nilai kembali baik dapat menjadi skalar (tunggal) nilai atau meja. Menggunakan pernyataan ini untuk membuat sebuah rutin reusable yang dapat digunakan dalam cara ini:
·         Dalam pernyataan Transact-SQL seperti SELECT
·         Dalam aplikasi memanggil fungsi
·         Dalam definisi fungsi lain yang ditetapkan pengguna
·         Untuk parameterisasi melihat atau meningkatkan fungsionalitas dari sebuah indexed view
·         Untuk menentukan kolom dalam tabel
·         Untuk menentukan kendala PERIKSA pada kolom
·         Untuk mengganti prosedur yang tersimpan

Transact-SQL Sintaks Fungsi Skalar
 MENCIPTAKAN FUNGSI [schema_name.  ] Function_name 
 ([{@ Parameter_name [AS] [type_schema_name.] Parameter_data_type 
 [= Default] [ReadOnly]} 
 [, ... N]
 ]
 )
 PENGEMBALIAN return_data_type
 [DENGAN  [, ... n]]
 [AS]
 BEGIN 
 function_body 
 RETURN scalar_expression
 AKHIR
 [;]

Stored Procedure vs Functions
Dalam banyak kasus Anda dapat menyelesaikan tugas yang sama baik menggunakan prosedur tersimpan atau fungsi. Kedua fungsi dan prosedur yang tersimpan dapat kustom didefinisikan dan bagian dari aplikasi apapun.Fungsi, di sisi lain, dirancang untuk mengirim output mereka ke pernyataan query atau T-SQL. Sebagai contoh, Ditetapkan Pengguna Fungsi (UDFS) dapat menjalankan file eksekusi dari SQL SELECT atau sebuah query tindakan, sementara Stored Procedures (sproc) menggunakan Jalankan atau EXEC untuk menjalankan.Keduanya instantiated menggunakan FUNGSI CREATE.
Trigger
Trigger database adalah kode procedural yang secara otomatis dieksekusi dalam menanggapi peristiwa tertentu pada tertentu meja  atau melihat di database yang . trigger banyak digunakan untuk menjaga integritas informasi pada database. Sebagai contoh, ketika sebuah rekor baru (mewakili seorang pekerja baru) ditambahkan ke tabel karyawan, catatan baru harus dibuat juga dalam tabel pajak, liburan, dan gaji.
Trigger biasanya digunakan untuk:
§  Audit perubahan (misalnya menyimpan log dari pengguna dan peran yang terlibat dalam perubahan)
§  meningkatkan perubahan (misalnya memastikan bahwa setiap perubahan untuk merekam waktu-cap oleh server)
§  menegakkan aturan bisnis (misalnya mengharuskan setiap faktur memiliki setidaknya satu item baris)
§  mengeksekusi aturan bisnis (misalnya memberitahu manajer setiap kali perubahan nomor rekening bank yang karyawan)
§  replikasi data (misalnya menyimpan catatan setiap perubahan, untuk dikirim ke database lain kemudian)
§  meningkatkan kinerja (misalnya memperbarui saldo rekening setelah setiap transaksi detail, untuk query lebih cepat)
Contoh diatas disebut data Manipulasi Language(ML) memicu karena memicu didefinisikan sebagai bagian dari Bahasa Manipulasi Data dan dieksekusi pada saat data dimanipulasi. Beberapa sistem juga mendukung non-data yang memicu, yang kebakaran dalam menanggapi Data Defitnition Language (DDL) acara-acara seperti membuat tabel, atau runtime atau dan acara-acara seperti logon, komit, dan rollback. Seperti DDL memicu dapat digunakan untuk tujuan audit.
Berikut ini adalah fitur utama dari trigger database dan efek mereka:
§  Trigger tidak menerima parameter atau argumen (tapi mungkin menyimpan data dalam terpengaruh-tabel sementara)
§  Trigger tidak dapat melakukan operasi melakukan atau rollback karena mereka adalah bagian dari pernyataan SQL memicu (hanya melalui transaksi otonom)
§  Trigger biasanya lambat (perlambatan proses)


contoh syntax trigger :
SELECT * FROM MY_TABLE;
 UPDATE MY_TABLE SET A = 5;
 INSERT INTO MY_TABLE VALUES (3, 'aaa');




Tidak ada komentar:

Posting Komentar