Prosedur tersimpan adalah sekelompok pernyataan SQL yang dikompilasi menjadi satu. Prosedur tersimpan dapat mencakup logika bisnis dan konstruksi pemrograman lainnya.
Di SQL Server, prosedur tersimpan adalah grup dari satu atau lebih pernyataan Transact-SQL atau referensi ke metode bahasa runtime umum (CLR) Microsoft .NET Framework.
Kemampuan Program
Prosedur tersimpan lebih dari sekadar skrip panjang. Ini adalah skrip yang telah disimpan di SQL Server secara khusus di bawah Stored Procedures simpul, dan dapat:
- Terima parameter masukan (dan kembalikan beberapa nilai dalam bentuk parameter keluaran ke program pemanggil).
- Berisi pernyataan pemrograman.
- Mengembalikan nilai status ke program panggilan untuk menunjukkan keberhasilan atau kegagalan, dan alasan kegagalan apa pun.
Prosedur tersimpan sering mengandung logika bisnis. Misalnya, prosedur tersimpan dapat menerima parameter yang diteruskan ke sana dan menguji parameter tersebut menggunakan IF
pernyataan. Misalnya, jika parameternya adalah satu nilai, lakukan ini, jika itu nilai lain, lakukan itu.
Prosedur tersimpan dapat meningkatkan kinerja dalam aplikasi, karena prosedur tersimpan diuraikan dan dioptimalkan segera setelah dibuat, lalu disimpan dalam memori. Menjalankan kueri bersyarat melalui prosedur tersimpan bisa sangat cepat - dibandingkan dengan aplikasi yang mengirimkan kueri melalui jaringan, ke SQL Server, kemudian mengembalikan semua data ke dalamnya melalui jaringan sehingga dapat menyaringnya, dan memilih hanya catatan yang diminatinya.
Manfaat Prosedur Tersimpan
Berikut adalah beberapa manfaat utama dalam menggunakan prosedur tersimpan:
Manfaat | Penjelasan |
---|---|
Pemrograman Modular | Anda dapat menulis prosedur tersimpan sekali, lalu memanggilnya lagi dan lagi, dari berbagai bagian aplikasi (dan bahkan dari beberapa aplikasi). |
Kinerja | Prosedur tersimpan memberikan eksekusi kode yang lebih cepat dan mengurangi lalu lintas jaringan.
|
Keamanan | Pengguna dapat menjalankan prosedur tersimpan tanpa perlu mengeksekusi pernyataan apa pun secara langsung. Oleh karena itu, prosedur tersimpan dapat menyediakan fungsionalitas database tingkat lanjut untuk pengguna yang biasanya tidak memiliki akses ke tugas ini, tetapi fungsi ini tersedia dengan cara yang dikontrol dengan ketat. |
Cara Membuat Prosedur Tersimpan
Untuk membuat prosedur tersimpan, gunakan CREATE PROCEDURE
pernyataan, diikuti oleh kode yang membentuk prosedur tersimpan. Jika prosedur tersimpan Anda akan menerima parameter, parameter tersebut harus disertakan setelah nama.
CREATE PROCEDURE myStoredProcedure AS ... OR CREATE PROCEDURE myStoredProcedure @ParameterName DataType AS ...
Contoh
Berikut adalah contoh membuat prosedur tersimpan dan kemudian menjalankan prosedur tersimpan tersebut.
-
Buat Prosedur Tersimpan
Jalankan pernyataan berikut terhadap database Musik yang telah kita buat selama tutorial ini.
Contoh ini membuat prosedur tersimpan yang disebut AlbumsFromArtist. Ini memilih semua album dari artis yang ditentukan saat prosedur tersimpan berjalan.
CREATE PROCEDURE spAlbumsFromArtist @ArtistName varchar(255) AS SELECT AlbumName, ReleaseDate FROM Albums INNER JOIN Artists ON Albums.ArtistId = Artists.ArtistId WHERE Artists.ArtistName = @ArtistName; GO
-
Lihat Prosedur Tersimpan
Luaskan Programmabilitas> Prosedur Tersimpan node di bawah database yang berlaku untuk melihat prosedur tersimpan yang baru Anda buat. Anda juga dapat memperluas Parameter prosedur tersimpan node untuk melihat parameter yang harus Anda lewati saat menjalankannya.
-
Jalankan Prosedur Tersimpan
Sekarang prosedur tersimpan telah dibuat, Anda dapat menjalankannya dengan menggunakan
EXECUTE
pernyataan dan melewati parameter yang diperlukan.Dalam contoh kita, kita harus memberikan nama artis.
EXECUTE spAlbumsFromArtist @ArtistName = "Devin Townsend";
Atau, Anda dapat menghilangkan nama parameter saat meneruskan parameter. Seperti ini:
EXECUTE spAlbumsFromArtist "Devin Townsend";
Mengubah Prosedur Tersimpan
Anda dapat memodifikasi prosedur tersimpan Anda dengan ALTER PROCEDURE
penyataan. Sama seperti ketika Anda mengubah tampilan, Anda dapat mengubah prosedur tersimpan hanya dengan menerapkan definisi prosedur tersimpan yang baru.
-
Ubah Prosedur Tersimpan
Jalankan pernyataan berikut. Ini menambahkan kolom baru ke hasil yang dikembalikan oleh prosedur tersimpan. Kami juga menambahkan alias ke nama kolom.
ALTER PROCEDURE spAlbumsFromArtist @ArtistName varchar(255) AS SELECT al.AlbumName, al.ReleaseDate, g.Genre FROM Albums al INNER JOIN Artists ar ON al.ArtistId = ar.ArtistId INNER JOIN Genres g ON g.GenreId = al.GenreId WHERE ar.ArtistName = @ArtistName; GO
-
Jalankan Prosedur Tersimpan
Sekarang kita telah menambahkan
Genre
kolom ke tampilan, prosedur tersimpan sekarang mengembalikan kolom itu saat kita menjalankannya.EXECUTE spAlbumsFromArtist @ArtistName = "Devin Townsend";