Pada artikel ini, saya menjelaskan cara menghapus semua Prosedur Tersimpan dalam database tertentu. Beberapa kali dalam proyek kami, kami harus menghapus semua Stored Procedures. Jika ada banyak Prosedur Tersimpan maka sangat membosankan untuk membuang semuanya. Di sini saya menjelaskan cara menghapus semua Prosedur Tersimpan dalam database secara otomatis
Saya menganggap Anda memiliki pengetahuan dasar tentang Stored Procedures dan kursor;
Pertama-tama kita membuat tabel
Pembuatan Tabel
- buat tabel emp(empId int, empName varchar(15))
- Pergilah
- masukkan ke dalam emp
- pilih 1,'Deepak'union semua
- pilih 2,'Arora'
- Pergilah
- pilih * dari emp
Sekarang kita membuat dua Prosedur Tersimpan
Pembuatan Stored Procedure pertama
- buat proc usp_select
- sebagai
- pilih * dari emp
- Pergilah
- exec usp_select
Pembuatan Stored Procedure kedua
- buat proc usp_insert(@id int, @nama varchar(15))
- sebagai
- sisipkan ke nilai emp (@id, @name)
- Pergilah
- exec usp_insert 3,'Daljeet singh'
- Pergilah
- exec usp_select
Sekarang kita membuat kursor
- nyatakan cur_dropProc kursor
- gulir untuk
- pilih [nama] dari sysobjects di mana xtype='p'
- buka cur_dropProc
- Pergilah
- Deklarasikan @procName varchar(500)
- ambil pertama dari cur_dropProc ke @procName
- sementara @@fetch_status=0
- mulai
- Exec('lepaskan prosedur ' + @procName)
- ambil berikutnya dari cur_dropProc ke @procName
- akhir
- Pergilah
- tutup cur_dropProc
- Pergilah
- membatalkan alokasi cur_dropProc
Sekarang lihat Stored Procedure di Database
- pilih [nama] dari sysobjects di mana xtype='p'
Pada artikel ini, saya menjelaskan cara menghapus semua Prosedur Tersimpan dalam database di SQL Server. Saya harap artikel ini membantu Anda memahami topik ini. Silakan bagikan jika Anda tahu lebih banyak tentang ini. Umpan balik dan kontribusi konstruktif Anda dipersilakan.
Pernyataan ini digunakan untuk menghentikan prosedur tersimpan. Artinya, rutin yang ditentukan dihapus dari server bersama dengan semua hak khusus untuk prosedur tersebut. Anda harus memiliki hak istimewa ALTER ROUTINE_ untuk rutinitas. Jika variabel sistem server automatic_sp_privileges_ disetel, hak istimewa tersebut dan EXECUTE diberikan secara otomatis ke pembuat rutin - lihat Hak Istimewa Rutin Tersimpan
Klausul IF EXISTS_ adalah ekstensi MySQL/MariaDB. Ini mencegah terjadinya kesalahan jika prosedur atau fungsi tidak ada. NOTE diproduksi yang dapat dilihat dengan SHOW WARNINGS
Sementara pernyataan ini langsung berlaku, utas yang menjalankan prosedur dapat melanjutkan eksekusi
Contoh
DROP PROCEDURE simpleproc;JIKA ADA
DROP PROCEDURE simpleproc; ERROR 1305 (42000): PROCEDURE test.simpleproc does not exist DROP PROCEDURE IF EXISTS simpleproc; Query OK, 0 rows affected, 1 warning (0.00 sec) SHOW WARNINGS; +-------+------+------------------------------------------+ | Level | Code | Message | +-------+------+------------------------------------------+ | Note | 1305 | PROCEDURE test.simpleproc does not exist | +-------+------+------------------------------------------+ _Lihat juga
Komentar
Konten yang direproduksi di situs ini adalah milik dari pemiliknya masing-masing, dan konten ini tidak ditinjau sebelumnya oleh MariaDB. Pandangan, informasi, dan opini yang diungkapkan oleh konten ini tidak selalu mewakili MariaDB atau pihak lain mana pun