Protsedura - bu siz saqlashingiz mumkin bo'lgan tayyor SQL kodidir, shuning uchun kodni qayta-qayta ishlatish mumkin. Shunday qilib, agar sizda qayta-qayta yozadigan SQL so'rovingiz bo'lsa, uni protsedura sifatida saqlang va keyin unga kerak paytda shunchaki murojaat qiling. Shuningdek, siz protseduraga parametrlarni berishingiz mumkin, shuning uchun protsedura parametr qiymati(lar)iga asoslanib ishlashi ham mumkin.
Protsedura quyidagicha yaratiladi:
CREATE PROCEDURE protsedura_nomi AS sql_sorov GO;
Protsedura quyidagicha ishga tushiriladi:
EXEC protsedura_nomi;
Protseduralarga bir nechta misollar ko’ramiz. Quyidagi Xaridorlar jadvalini misol qilib olamiz:
Barcha Xaridorlarni barcha ustunlari bilan chop etadigan SELECT SQL so’rovini protsedura shaklida saqlab qo’yamiz:
CREATE PROCEDURE SelectXaridorlar AS SELECT * FROM Xaridorlar GO;
Endi protsedurani ishga tushiramiz:
EXEC SelectXaridorlar;
Endi bitta parameter qabul qiladigan protsedura yaratamiz. Quyidagi protsedura Xaridorlar jadvalidan ma’lum bir Websaytga ega xaridorlarni tanlab beradi.
CREATE PROCEDURE SelectXaridorlar @Websayt nvarchar(30) AS SELECT * FROM Xaridorlar WHERE Websayt = @Websayt GO;
Endi protsedurani ishga tushiramiz:
EXEC SelectXaridorlar @Websayt = 'uzbekdevs.uz';
Bir nechta parametrlarga ega protsedura yaratish ham qiyin emas. Shunchaki parametrlar ro’yxatini ma’lumot turi bilan birga vergul bilan ajratib yozing.
Quyidagi SQL protsedura ma’lum bir Websaytga ega va ma’lum bir yosh chegarasidagi xaridorlarni chop etadigan so’rovni saqlaydi
CREATE PROCEDURE SelectXaridorlar @Websayt nvarchar(30), @XaridorYoshi int(10) AS SELECT * FROM Xaridorlar WHERE Websayt = @Websayt AND XaridorYoshi > @XaridorYoshi GO;
Endi protsedurani ishga tushiramiz:
EXEC SelectXaridorlar @Websayt = 'blogpost.uz', @XaridorYoshi = 25;
Mavjud protsedurani o’chirish uchun quyidagicha kod yoziladi:
DROP PROCEDURE protsedura_nomi;
SQL Serverlarda ba'zi protseduralar tayyor hisoblanadi. Bunday protseduralar tizim protseduralari deyiladi. Tizim protseduralarining nomlari 'sp_' prefiksi bilan boshlanadi. Shuning uchun biz o'z yaratgan protseduralarimizni bunday shaklda nomlay olmaymiz. Quyida bir nechta foydali tizim protseduralarini keltirib o'tamiz.
- sp_rename – ma’lumotlar ba’zasi obyektlarini qayta nomlash uchun ishlatiladi, masalan, protsedura, jadval, indeks kabilarni.
- sp_changeowner - ma’lumotlar ba’zasi obyektining egasini o’zgartirish uchun foydalaniladi.
- sp_help - ma’lumotlar ba’zasi obyekti haqida ma’lumot beradi.
- sp_helpdb – SQL Serverdagi ma’lumotlar bazasi haqida ma’lumot beradi.
- sp_helptext - SQL serverida yaratilgan protsedura matnini taqdim etadi.
- sp_depends - ma'lumotlar bazasi obyektiga bog'liq bo'lgan barcha ma'lumotlar bazasi obyektlarining tafsilotlarini taqdim etadi.