Protseduralar va ularni yaratish
Saqlangan protseduralarni yaratish, o'zgartirish
Saqlangan protsedurani yaratish quyidagi muammolarni hal qilishni o'z ichiga oladi: kirish huquqlarini rejalashtirish. Saqlangan protsedurani yaratishda, u yaratgan foydalanuvchi kabi ma'lumotlar bazasi ob'ektlariga kirish huquqiga ega bo'lishini unutmang; saqlanadigan protseduraning parametrlarini aniqlash, saqlanadigan protseduralar kirish va chiqish parametrlariga ega bo'lishi mumkin; saqlangan protsedura kodini ishlab chiqish. Protsedura kodi SQL buyruqlarining har qanday ketma -ketligini, shu jumladan boshqa saqlangan protseduralarga qo'ng'iroqlarni o'z ichiga olishi mumkin.
Operatorning MS SQL Server yozuvida saqlangan protsedurani yangisini yaratish yoki o'zgartirish uchun sintaksisi:
(YARATISH | ALTER) PROC [EDURE] protsedura_ nomi [; raqam] [[@ parameter_name ma'lumotlar turi] [VARYING] [= DEFAULT] [OUTPUT]] [, ... n] [WITH (RECOMPILE | ENCRYPTION | RECOMPILE, ENCRPTION)]] [REPLICATION] uchun sql_operator sifatida [... n]
Keling, ushbu buyruq parametrlarini ko'rib chiqaylik.
Sp_, #, ## prefikslari yordamida yaratilgan protsedurani tizimli yoki vaqtinchalik deb ta'riflash mumkin. Buyruq sintaksisidan ko'rinib turibdiki, yaratilgan protseduraga ega bo'lgan egasining ismini, shuningdek, u joylashgan bo'lishi kerak bo'lgan ma'lumotlar bazasi nomini ko'rsatishga yo'l qo'yilmaydi. Shuning uchun, siz yaratayotgan saqlanayotgan protsedurani ma`lumotlar bazasida joylashtirish uchun CREATE PROCEDURE buyrug'ini shu ma'lumotlar bazasi kontekstida ishga tushirish kerak. Saqlangan protsedura tanasidan bir xil ma'lumotlar bazasi ob'ektlariga murojaat qilganda, qisqartirilgan nomlardan foydalanish mumkin, ya'ni ma'lumotlar bazasi nomini ko'rsatmasdan. Boshqa ma'lumotlar bazalarida joylashgan ob'ektlarga murojaat qilish kerak bo'lganda, ma'lumotlar bazasi nomini ko'rsatish talab qilinadi.
Yaratilgan saqlanadigan protseduraga kirish va chiqish ma'lumotlarini uzatish uchun parametr nomlari @ belgisidan boshlanishi kerak. Bir nechta parametrlarni bitta saqlanadigan protsedurada vergul bilan ajratish mumkin. Protsedura tanasi nomlari ushbu protsedura parametrlari nomlari bilan bir xil bo'lgan mahalliy o'zgaruvchilardan foydalanmasligi kerak. Saqlangan protsedura parametrlarining ma'lumotlar turini aniqlash uchun har qanday tur mos keladi. SQL ma'lumotlari shu jumladan foydalanuvchi tomonidan belgilanadi. Biroq, CURSOR ma'lumotlar turini faqat saqlangan protseduraning chiqish parametri sifatida ishlatish mumkin, ya'ni. OUTPUT kalit so'zini ko'rsatish.
OUTPUT kalit so'zining mavjudligi tegishli parametr saqlangan protseduradan ma'lumotlarni qaytarish uchun ekanligini ko'rsatadi. Biroq, bu parametr qiymatlarni saqlangan protseduraga o'tkazish uchun mos emas degani emas. OUTPUT kalit so'zini ko'rsatish serverga saqlangan protseduradan chiqishda, protsedura chaqirilganda parametr qiymati sifatida ko'rsatilgan mahalliy o'zgaruvchiga joriy parametr qiymatini belgilashni buyuradi. E'tibor bering, OUTPUT kalit so'zi ko'rsatilganda, protsedurani chaqirishda mos keladigan parametr qiymati faqat mahalliy o'zgaruvchi yordamida o'rnatilishi mumkin. Oddiy parametrlar uchun amal qiladigan har qanday iboralar yoki doimiylardan foydalanishga ruxsat berilmagan. VARYING kalit so'zi CURSOR tipidagi OUTPUT parametri bilan birgalikda ishlatiladi. Chiqish parametri natijalar to'plami bo'lishini bildiradi.
DEFAULT kalit so'zi mos keladigan standart parametrni qabul qiladigan qiymatdir. Shunday qilib, protsedurani chaqirganda, mos keladigan parametrning qiymatini aniq ko'rsatish shart emas.
Server so'rovlarni bajarish rejasi va tuzilgan kodni keshlaganligi uchun protseduraga keyingi qo'ng'iroq tayyor qiymatlardan foydalanadi. Biroq, ba'zi hollarda, siz protsedura kodini qayta kompilyatsiya qilishingiz kerak. RECOMPILE kalit so'zini ko'rsatish tizimga har safar chaqirilganda saqlangan protseduraning bajarilish rejasini tuzishni buyuradi.
FOR REPLICATION parametri ma'lumotni takrorlashda va yaratilgan saqlangan protsedurani nashrga maqola sifatida kiritishda talab qilinadi. ENCRYPTION kalit so'zi serverga protsedura kodini shifrlashni buyuradi, bu esa saqlangan protsedurani amalga oshiruvchi mualliflik algoritmlaridan himoyalanishni ta'minlaydi. AS kalit so'zi saqlangan protseduraning haqiqiy tanasi boshiga joylashtiriladi. Protsedura tanasi deyarli barcha SQL buyruqlaridan foydalanishi, tranzaktsiyalarni e'lon qilishi, qulflar olishi va boshqa saqlangan protseduralarni chaqirishi mumkin. RETURN buyrug'i yordamida saqlangan protseduradan chiqishingiz mumkin.
Ushbu protsedura FindSite deb nomlanadi. U @site_name deb nomlangan bitta parametrga ega, bu @site_id o'zgaruvchiga asoslangan holda yangilanadigan chiqish parametri.
Keyin FindSite deb nomlangan yangi saqlangan protseduraga quyidagicha murojaat qilishingiz mumkin.
DEFAULT kalit so'zi mos keladigan standart parametrni qabul qiladigan qiymatdir. Shunday qilib, protsedurani chaqirganda, mos keladigan parametrning qiymatini aniq ko'rsatish shart emas.
Server so'rovlarni bajarish rejasi va tuzilgan kodni keshlaganligi uchun protseduraga keyingi qo'ng'iroq tayyor qiymatlardan foydalanadi. Biroq, ba'zi hollarda, siz protsedura kodini qayta kompilyatsiya qilishingiz kerak. RECOMPILE kalit so'zini ko'rsatish tizimga har safar chaqirilganda saqlangan protseduraning bajarilish rejasini tuzishni buyuradi.
FOR REPLICATION parametri ma'lumotni takrorlashda va yaratilgan saqlangan protsedurani nashrga maqola sifatida kiritishda talab qilinadi. ENCRYPTION kalit so'zi serverga protsedura kodini shifrlashni buyuradi, bu esa saqlangan protsedurani amalga oshiruvchi mualliflik algoritmlaridan himoyalanishni ta'minlaydi. AS kalit so'zi saqlangan protseduraning haqiqiy tanasi boshiga joylashtiriladi. Protsedura tanasi deyarli barcha SQL buyruqlaridan foydalanishi, tranzaktsiyalarni e'lon qilishi, qulflar olishi va boshqa saqlangan protseduralarni chaqirishi mumkin. RETURN buyrug'i yordamida saqlangan protseduradan chiqishingiz mumkin.
Do'stlaringiz bilan baham: |