3-4- ish. Mavzu. Funktsiyalar va saqlangan protseduralarni yaratish, o'zgartirish, qo'llash va o'chirish (10 balli) T-SQL da saqlanadigan protseduralar - yaratish, o'zgartirish, o'chirish. SQL saqlangan protseduralar: saqlangan protseduralarda aloqalarni yaratish va ulardan foydalanish Protseduralaringizga qatorni kiriting - SET NOCOUNT ON:
Har bir DML bayonoti bilan SQL server ehtiyotkorlik bilan qayta ishlangan yozuvlar sonini o'z ichiga olgan xabarni qaytaradi. Ushbu ma'lumot kodni disk raskadrovka qilishda biz uchun foydali bo'lishi mumkin, ammo bundan keyin u butunlay foydasiz bo'ladi. SET NOCOUNT ON ni belgilash orqali biz bu funksiyani o‘chirib qo‘yamiz. Bir nechta ifoda yoki \ va tsikllarni o'z ichiga olgan saqlangan protseduralar uchun bu harakat ishlashning sezilarli o'sishini berishi mumkin, chunki trafik miqdori sezilarli darajada kamayadi.
Transact-SQL Ob'ekt nomi bilan sxema nomidan foydalaning:
Xo'sh, bu erda menimcha, bu aniq. Bu operatsiya serverga ob'ektlarni qayerdan qidirish kerakligini aytadi va qutilarini tasodifiy varaqlash o'rniga, u qaerga borish kerakligini va nimani olish kerakligini darhol bilib oladi. Ko'p sonli ma'lumotlar bazalari, jadvallar va saqlangan protseduralar bilan u bizning vaqtimiz va asablarimizni sezilarli darajada tejashga yordam beradi.
Transact-SQL SELECT * FROM dbo.MyTable --Buni qilish yaxshi - SELECT * FROM MyTable o'rniga - Va buni qilish yomon --EXEC protsedurasini chaqirish dbo.MyProc - Yana yaxshi --EXEC MyProc o'rniga --Yomon!
Saqlangan protseduralaringiz nomida "sp_" prefiksidan foydalanmang:
Agar protsedura nomi "sp_" bilan boshlangan bo'lsa, SQL Server avval uning asosiy ma'lumotlar bazasini qidiradi. Gap shundaki, ushbu prefiks shaxsiy ichki serverda saqlanadigan protseduralar uchun ishlatiladi. Shuning uchun, uning ma'lumotlar bazasida sizniki bilan bir xil nomdagi protsedura topilsa, undan foydalanish qo'shimcha xarajatlarga va hatto noto'g'ri natijaga olib kelishi mumkin.
IF EXISTS (SELECT *) oʻrniga IF EXISTS (1-ni tanlang) dan foydalaning:
Boshqa jadvaldagi yozuvni tekshirish uchun biz IF EXISTS bayonotidan foydalanamiz. Agar ichki ifodadan kamida bitta qiymat qaytarilsa, bu ifoda "true"ni qaytaradi, bu "1", barcha ustunlar yoki jadval muhim emas. Qaytarilgan ma'lumotlar, qoida tariqasida, hech qanday tarzda ishlatilmaydi. Shunday qilib, ma'lumotlarni uzatish paytida trafikni siqish uchun quyida ko'rsatilganidek, "1" dan foydalanish mantiqiyroq.
Saqlangan protsedura (ing. saqlangan protsedura) nomli ma'lumotlar bazasi dasturi ob'ektidir. SQL Serverda saqlanadigan protseduralarning bir nechta turlari mavjud.
Tizimda saqlanadigan protseduralar (ing. tizimda saqlanadigan protsedura) DBMS ishlab chiquvchilari tomonidan taqdim etiladi va tizim katalogi bilan harakatlarni bajarish yoki tizim ma'lumotlarini olish uchun ishlatiladi. Ularning nomlari odatda "sp_" prefiksi bilan boshlanadi. Barcha turdagi saqlanadigan protseduralar EXECUTE buyrug'i bilan chaqiriladi, uni EXEC deb qisqartirish mumkin. Masalan, parametrlarsiz ishlaydigan sp_helplogins saqlanadigan protsedura hisob nomlari bo'yicha ikkita hisobot yaratadi. (ing. login) va har bir ma'lumotlar bazasida ularning tegishli foydalanuvchilari (ing. foydalanuvchilar).