Prosedur tersimpan panggilan

Selesai

Prosedur tersimpan dapat dipanggil oleh aplikasi, oleh pengguna, atau ketika SQL Server dimulai.

Menjalankan prosedur tersimpan oleh pengguna

Ketika aplikasi atau pengguna menjalankan prosedur tersimpan, perintah EXECUTE atau pintasannya, EXEC digunakan, diikuti oleh nama dua bagian dari prosedur. Contohnya:

EXEC dbo.uspGetEmployeeManagers

Prosedur tersimpan sistem juga dipanggil menggunakan kata kunci EXECUTE atau EXEC. Kolase database panggilan digunakan saat mencocokkan nama prosedur sistem. Jika kolase database peka huruf besar/kecil, Anda harus menjalankan prosedur tersimpan dengan huruf besar/kecil yang tepat dari nama prosedur.

Jika prosedur tersimpan merupakan pernyataan pertama dalam batch T-SQL, prosedur dapat dijalankan tanpa kata kunci EXECUTE atau EXEC.

Untuk memeriksa nama prosedur sistem yang tepat, gunakan tampilan katalog:

sys.system_objects

sys.system_parameters

Prosedur tersimpan sistem diawali dengan sp_. Prosedur tersimpan sistem tidak dibuat oleh pengguna, tetapi merupakan bagian dari semua database yang ditentukan pengguna dan ditentukan sistem. Mereka tidak memerlukan nama yang sepenuhnya memenuhi syarat untuk dieksekusi, tetapi praktik terbaik adalah menyertakan nama skema sys . Contohnya:

EXEC sys.sp_who;

Menjalankan prosedur tersimpan secara otomatis

Anda dapat menjalankan prosedur tersimpan setiap kali SQL Server dimulai. Anda mungkin ingin melakukan operasi pemeliharaan database, atau menjalankan prosedur sebagai proses latar belakang. Prosedur tersimpan yang berjalan secara otomatis tidak boleh berisi parameter input atau output.

Gunakan sp_procoption untuk menjalankan prosedur tersimpan setiap kali instans SQL Server dimulai. Sintaksnya adalah:

sp_procoption [ @ProcName = ] 'procedure'     
    , [ @OptionName = ] 'option'     
    , [ @OptionValue = ] 'value'

Contohnya:

EXEC sp_procoption @ProcName = myProcedure    
    , @OptionName = 'startup'   
    , @OptionValue = 'on';

Untuk menjalankan beberapa prosedur yang tidak perlu menjalankannya secara paralel, buat satu prosedur sebagai prosedur startup dan panggil prosedur lain dari prosedur startup. Ini hanya akan menggunakan satu utas pekerja.

Prosedur startup harus berada dalam database master.