Prosedur Tersimpan Dalam SQL | Gambaran keseluruhan

Prosedur Tersimpan Dalam SQL | Gambaran keseluruhan

Dalam blog ini, kami akan membincangkan prosedur tersimpan dalam SQL yang boleh anda gunakan untuk menyimpan set kod dan menggunakannya berulang kali pada bila-bila masa anda memerlukannya. Prosedur tersimpan adalah serupa dengan paparan. Walau bagaimanapun, anda boleh menjalankan operasi jadual biasa seperti DROP, TRUNCATE, DELETE, dsb. dengan prosedur tersimpan yang anda tidak boleh lakukan dengan paparan.

Prosedur tersimpan juga telah disusun terlebih dahulu supaya ia berjalan lebih cepat daripada paparan. Ia juga meminimumkan kuantiti data yang dihantar ke pelayan pangkalan data.

Isi kandungan

Sintaks Untuk Prosedur Tersimpan Dalam SQL: Tanpa Parameter

Untuk mencipta prosedur tersimpan tanpa parameter, anda perlu bermula dengan fungsi CREATE . Kemudian tambah fungsi PROC , taip nama prosedur selepas itu, dan tambah fungsi AS .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Mencipta prosedur tersimpan dalam adalah serupa dengan membuat jadual dan pandangan. Namun, perbezaannya adalah dalam proses mendapatkan data.

Sebagai contoh, jika kami ingin mendapatkan data daripada paparan, kami menggunakan " PILIH * DARI nama_pandangan ." Sebaliknya, untuk prosedur tersimpan, kami menggunakan EXEC yang bermaksud "laksanakan," dan kemudian taip nama prosedur tersimpan selepas.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Sebaik sahaja kami melaksanakan prosedur tersimpan , ia juga akan memaparkan maklumat berdasarkan arahan atau arahan yang telah anda tambahkan.

Sintaks Untuk Prosedur Tersimpan Dalam SQL: Dengan Parameter

Mari kita beralih kepada . Prosesnya serupa dengan contoh sebelumnya yang saya tunjukkan. Satu-satunya perbezaan ialah anda perlu memasukkan parameter sebelum fungsi AS dan juga jenis data sejurus selepas itu.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Anda juga boleh menggunakan parameter yang telah anda isytiharkan dalam penciptaan prosedur tersimpan dalam arahan anda. Ini adalah untuk anda menjimatkan masa memasukkan berbilang nilai. Sebagai contoh, bukannya menaip secara manual customerID1 , customerID2 dan sebagainya, kami menggunakan @custid atau parameter untuk mengelakkan daripada mempunyai set kod yang panjang.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Sila ambil perhatian bahawa apabila menggunakan atau memasukkan parameter, adalah penting untuk menggunakan simbol @ . Anda juga boleh memasukkan seberapa banyak parameter yang anda mahu, bukan hanya satu. Beginilah cara kami melaksanakan prosedur tersimpan dengan parameter.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Seperti yang anda boleh perhatikan, kami juga menggunakan parameter dengan nilai yang sama dengan 1 dalam melaksanakan prosedur tersimpan. Ini hanya akan membawa maklumat custid1 .

Contoh Senario Prosedur Tersimpan Dalam SSMS

Mari kita dapatkan lebih banyak contoh prosedur tersimpan dalam SQL. Dalam contoh pertama, saya akan mencipta prosedur tersimpan sampel dengan menggunakan arahan yang diserlahkan di bawah.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Untuk konvensyen penamaan dalam mencipta prosedur tersimpan, kami biasanya menggunakan "usp" atau "sp" untuk menunjukkan bahawa ini adalah prosedur tersimpan. Jika anda tertanya-tanya apa maksud "usp", ia hanya bermaksud prosedur tersimpan yang ditentukan pengguna. 

Seterusnya, kami akan menulis pertanyaan untuk prosedur tersimpan diproses apabila ia dilaksanakan.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Pertanyaan dalam contoh sebelumnya hanya akan mengalih keluar jadual bernama dbo.stageOrders . Kemudian ia akan mencipta semula dbo.stageOrders dengan data daripada jadual Sales.SalesOrderHeader

Mari buat prosedur tersimpan ini dengan menyerlahkan kod berikut dan klik pada butang Laksanakan .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Selepas itu, anda sepatutnya melihat mesej seperti ini.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Kemudian kami kini akan melaksanakan prosedur tersimpan dengan menjalankan EXEC usp_TEST .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Selepas melaksanakan prosedur tersimpan usp_TEST , dbo.stageOrders kini sepatutnya mempunyai data daripada Sales.SalesOrderHeader . Mari semak kandungan dbo.stageOrders dengan menjalankan arahan di bawah.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Akibatnya, ini adalah data yang kami buat dalam dbo.stageOrders berdasarkan arahan yang telah kami tambahkan pada prosedur tersimpan kami.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Senario Contoh Kedua

Mari kita beralih kepada contoh lain. Kali ini saya tidak mahu melepaskan jadual dbo.stageOrders dan mencipta semula jadual yang sama dengan data yang datang daripada jadual Sales.SalesOrderHeader .

Sebaliknya, saya hanya mahu data daripada jadual Sales.SalesOrderHeader dipaparkan apabila saya melaksanakan prosedur tersimpan " usp_TEST " .

Untuk melakukan ini, saya perlu membuat perubahan pada prosedur tersimpan yang dibuat baru-baru ini dengan menggunakan pernyataan ALTER .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Dalam contoh ini, kami menggunakan pernyataan ALTER yang digunakan untuk mengubah suai prosedur tersimpan kami. Anda juga boleh menggunakan ini pada paparan dan jadual. Sebaik sahaja kami menjalankan kod dalam tangkapan skrin di atas, ia sepatutnya menukar pertanyaan untuk diproses oleh prosedur tersimpan kami.

Kali ini ia tidak akan mencipta semula mana-mana meja seperti yang kita lakukan sebelum ini. Jika kami melaksanakan " usp_TEST ," ia hanya akan membawa data daripada jadual Sales.SalesOrderHeader .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Senario Contoh Ketiga

Mari kita buat contoh lain. Kali ini kami akan menggunakan semula jadual dbo.stageOrders yang kami ada dalam contoh pertama kami untuk mencipta prosedur tersimpan dalam SSMS . Kita akan mulakan dengan contoh ini dengan memilih jadual dbo.stageOrders. 

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Keputusan apabila memilih semua data daripada dbo.stageOrders sepatutnya seperti ini.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Sekarang mari kosongkan jadual dbo.stageOrders dengan melaksanakan usp_TEST . Kita boleh melakukannya dengan menambah arahan berikut.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Selepas menambah perintah TRUNCATE TABLE , kami perlu mengemas kini usp_TEST .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Selepas itu, mesej yang mengatakan Perintah selesai dengan jayanya harus dipaparkan. Kemudian kami akan melaksanakan usp_TEST sekali lagi.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Setelah melaksanakan usp_TEST , ia akan menunjukkan semua rekod daripada Sales.SalesOrderHeader dan juga mengosongkan jadual dbo.stageOrders

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Untuk menyemak sama ada jadual dbo.stageOrders kosong, kita perlu memilihnya dengan menggunakan arahan berikut dan jalankan.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Setelah menjalankan kod di atas, kita dapat melihat jadual dbo.stageOrders kini kosong. Ini disebabkan oleh perintah TRUNCATE TABLE yang telah kami gunakan untuk mengemas kini usp_TEST .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Lokasi Prosedur Tersimpan Disimpan Dalam SQL

Jika anda ingin melihat di mana prosedur tersimpan dalam SQL sedang disimpan, pergi ke panel Penjelajah Objek di sebelah kiri dan klik ikon “ + ” sebelum pangkalan data yang anda sedang kerjakan.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Kemudian klik kanan pada Kebolehprograman dan pilih Muat Semula .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Kembangkan folder atau kumpulan Kebolehprograman dengan mengklik pada ikon " + ". Kemudian kembangkan kumpulan Prosedur Tersimpan dengan melakukan langkah yang sama. Di dalam kumpulan Prosedur Tersimpan, anda sepatutnya melihat dbo.usp_TEST .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Jika anda ingin menyemak arahan atau pertanyaan yang dijalankan oleh prosedur tersimpan tertentu dalam SQL, anda boleh klik kanan pada prosedur tersimpan dan ikuti langkah dalam tangkapan skrin di bawah.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Selepas itu, ia akan membuka prosedur tersimpan dalam tab lain di mana anda boleh melihat arahan yang disediakan di dalamnya. Beginilah rupa dbo.usp_TEST semasa membukanya.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Seperti yang anda lihat, terdapat beberapa arahan lalai sebelum kenyataan CREATE . Anda hanya boleh memadamnya jika anda mahu. 

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Sekarang anda tahu bagaimana untuk menyemak arahan yang dijalankan oleh prosedur tersimpan dalam SQL .

Mencipta Prosedur Tersimpan Dalam SQL Dengan Parameter

Seterusnya, kami akan membuat prosedur tersimpan dengan parameter. Sebagai contoh, kami akan menggunakan kod berikut untuk mencipta prosedur tersimpan baharu.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Dalam kod contoh, saya menggunakan proses yang sama untuk mencipta prosedur tersimpan bernama usp_GetCustomer . Kemudian saya menambah parameter iaitu @CustomerID dengan jenis input INT .

Ambil perhatian bahawa sebaik sahaja anda telah menambah parameter dalam mencipta prosedur tersimpan, anda harus sentiasa menyediakan parameter apabila anda akan melaksanakan arahan.

Mari lihat apa yang akan berlaku jika kita melaksanakan usp_GetCustomer tanpa menyediakan parameter.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Setelah melaksanakan usp_GetCustomer tanpa parameter, mesej ralat muncul. Beginilah rupanya jika kita melaksanakan usp_GetCustomer dengan parameter.

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Dengan parameter yang disediakan, kami boleh mendapatkan hasil yang betul dalam melaksanakan prosedur tersimpan kami .

Mencipta Prosedur Tersimpan Dengan Nilai Lalai

Jika anda ingin mengelak daripada menerima mesej ralat dalam melaksanakan prosedur tersimpan dengan parameter, anda boleh menetapkan nilai lalai yang akan berfungsi sebagai parameter lalai.

Sebagai contoh, kami akan mencipta prosedur tersimpan bernama usp_GetOrdersByYear .

Kemudian saya akan menambah parameter @OrderYear dengan jenis input " INT " dan nilai lalai yang sama dengan 2011 .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Jika kami melaksanakan usp_GetOrdersByYear tanpa parameter yang disediakan, ia akan memaparkan rekod dengan tahun 2011 .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Sebaliknya, jika kita melaksanakan usp_GetOrdersByYear dengan 2014 sebagai parameter tertentu, ia sepatutnya memaparkan rekod dengan tahun 2014 .

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Prosedur Tersimpan Dalam SQL |  Gambaran keseluruhan

Beginilah cara anda menggunakan prosedur tersimpan dalam tugas pengurusan data harian anda.

MEMPUNYAI Klausa Dalam Fungsi Agregat SQL
ISNULL Fungsi SQL Dalam Pernyataan Kes
Pengekstrakan Data SQL Menggunakan OFFSET dan FETCH

Kesimpulan

Dengan mengambil kira segala-galanya, anda telah mengetahui maksud prosedur tersimpan dalam SQL dan tujuannya. Kami juga telah membincangkan pernyataan ALTER yang digunakan untuk membuat perubahan atau kemas kini dalam prosedur tersimpan semasa.

Selain itu, anda telah mengetahui bahawa terdapat kaedah yang berbeza untuk mencipta prosedur tersimpan dalam SQL dan mempelajari cara mengelak daripada menerima ralat apabila melaksanakan prosedur tersimpan dengan memberikan nilai lalai.

Paling penting, anda telah belajar menggunakan prosedur tersimpan untuk menyimpan set arahan untuk mengelakkan daripada menjalankan set kod yang panjang berulang kali. Sebagai peringatan terakhir, jangan lupa untuk menggunakan simbol “ @ ” semasa menyediakan parameter.

Semua yang terbaik,

Hafiz


Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Apa Itu Diri Dalam Python: Contoh Dunia Sebenar

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Cara Menyimpan & Memuatkan Fail RDS Dalam R

Anda akan belajar cara menyimpan dan memuatkan objek daripada fail .rds dalam R. Blog ini juga akan membincangkan cara mengimport objek dari R ke LuckyTemplates.

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

N Hari Perniagaan Pertama Dilawati Semula – Penyelesaian Bahasa Pengekodan DAX

Dalam tutorial bahasa pengekodan DAX ini, pelajari cara menggunakan fungsi GENERATE dan cara menukar tajuk ukuran secara dinamik.

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Pamerkan Cerapan Menggunakan Teknik Visual Dinamik Berbilang Thread Dalam LuckyTemplates

Tutorial ini akan merangkumi cara menggunakan teknik Visual Dinamik Berbilang Thread untuk mencipta cerapan daripada visualisasi data dinamik dalam laporan anda.

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Pengenalan Untuk Menapis Konteks Dalam LuckyTemplates

Dalam artikel ini, saya akan menjalankan konteks penapis. Konteks penapis ialah salah satu topik utama yang perlu dipelajari oleh mana-mana pengguna LuckyTemplates pada mulanya.

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Petua Terbaik Menggunakan Aplikasi Dalam Perkhidmatan Dalam Talian LuckyTemplates

Saya ingin menunjukkan cara perkhidmatan dalam talian LuckyTemplates Apps boleh membantu dalam mengurus laporan dan cerapan berbeza yang dijana daripada pelbagai sumber.

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Analisis Perubahan Margin Keuntungan Lebih Masa – Analitis Dengan LuckyTemplates Dan DAX

Ketahui cara untuk menyelesaikan perubahan margin keuntungan anda menggunakan teknik seperti mengukur percabangan dan menggabungkan formula DAX dalam LuckyTemplates.

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Idea Pewujudan Untuk Cache Data Dalam DAX Studio

Tutorial ini akan membincangkan tentang idea pewujudan cache data dan cara ia mempengaruhi prestasi DAX dalam memberikan hasil.

Pelaporan Perniagaan Menggunakan LuckyTemplates

Pelaporan Perniagaan Menggunakan LuckyTemplates

Jika anda masih menggunakan Excel sehingga sekarang, maka inilah masa terbaik untuk mula menggunakan LuckyTemplates untuk keperluan pelaporan perniagaan anda.

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu

Apakah LuckyTemplates Gateway? Semua yang Anda Perlu Tahu