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 umum SQL Server
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
·
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 FunctionsDalam 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.
TriggerTrigger 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