Збережені процедури в SQL | Огляд

У цьому блозі ми збираємося обговорити збережені процедури в SQL, які можна використовувати для збереження набору коду та повторного його використання, коли вам це потрібно. Збережені процедури схожі на представлення. Однак ви можете виконувати такі дії, як DROP, TRUNCATE, DELETE тощо за допомогою збережених процедур, які ви не можете виконати з представленнями.

Збережені процедури також попередньо скомпільовані, щоб працювати швидше, ніж представлення. Це також мінімізує кількість даних, що надсилаються на сервер бази даних.

Зміст

Синтаксис для збережених процедур у SQL: без параметрів

Щоб створити збережену процедуру без параметрів, потрібно почати з функції CREATE . Потім додайте функцію PROC , введіть назву процедури відразу після неї та додайте функцію AS .

Збережені процедури в SQL |  Огляд

Створення збереженої процедури в подібне до створення таблиць і представлень. Однак різниця полягає в процесі отримання даних.

Наприклад, якщо ми хочемо отримати дані з представлення, ми використовуємо « SELECT * FROM view_name ». З іншого боку, для збережених процедур ми використовуємо EXEC, що означає «виконати», а потім вводимо назву збереженої процедури .

Збережені процедури в SQL |  Огляд

Коли ми виконаємо збережену процедуру , вона також виведе інформацію на основі доданих вами інструкцій або команд.

Синтаксис для збережених процедур у SQL: із параметрами

Переходимо до . Процес подібний до попереднього прикладу, який я продемонстрував. Єдина відмінність полягає в тому, що вам потрібно включити параметри перед функцією AS , а також тип даних одразу після.

Збережені процедури в SQL |  Огляд

Ви також можете використовувати параметр, який ви оголосили під час створення збереженої процедури у своїх командах. Це допоможе вам заощадити час на введення кількох значень. Наприклад, замість того, щоб вручну вводити customerID1 , customerID2 тощо, ми використали @custid або параметр, щоб уникнути довгого набору коду.

Збережені процедури в SQL |  Огляд

Зверніть увагу, що під час використання або включення параметра важливо використовувати символ @ . Ви також можете включити скільки завгодно параметрів, а не один. Ось як ми виконуємо збережені процедури з параметрами.

Збережені процедури в SQL |  Огляд

Як ви можете помітити, ми також використовували параметр зі значенням, рівним 1, при виконанні збереженої процедури. Це приведе лише інформацію про custid1 .

Приклад сценарію збережених процедур у SSMS

Давайте розглянемо більше прикладів збережених процедур у SQL. У першому випадку я збираюся створити зразок збереженої процедури за допомогою виділеної команди нижче.

Збережені процедури в SQL |  Огляд

Для іменування під час створення збереженої процедури ми зазвичай використовуємо «usp» або «sp», щоб вказати, що це збережена процедура. Якщо вам цікаво, що означає «usp», це просто означає визначену користувачем збережену процедуру. 

Далі ми збираємося написати запити для обробки збереженої процедури під час її виконання.

Збережені процедури в SQL |  Огляд

Запити в попередньому прикладі просто видалять таблицю з назвою dbo.stageOrders . Потім він відтворить dbo.stageOrders з даними з таблиці Sales.SalesOrderHeader

Давайте створимо цю збережену процедуру , виділивши наступний код і натиснувши кнопку Виконати .

Збережені процедури в SQL |  Огляд

Після цього ви повинні побачити таке повідомлення.

Збережені процедури в SQL |  Огляд

Потім ми виконаємо збережену процедуру, запустивши EXEC usp_TEST .

Збережені процедури в SQL |  Огляд

Після виконання збереженої процедури usp_TEST dbo.stageOrders тепер має мати дані з Sales.SalesOrderHeader . Давайте перевіримо вміст dbo.stageOrders , виконавши наведену нижче команду.

Збережені процедури в SQL |  Огляд

У результаті ми створили ці дані в dbo.stageOrders на основі команд, які ми додали до нашої збереженої процедури.

Збережені процедури в SQL |  Огляд

Другий зразок сценарію

Переходимо до іншого прикладу. Цього разу я не хочу видаляти таблицю dbo.stageOrders і повторно створювати ту саму таблицю з даними, що надходять із таблиці Sales.SalesOrderHeader .

Натомість я просто хочу, щоб дані з таблиці Sales.SalesOrderHeader відображалися щоразу, коли я виконую збережену процедуру “ usp_TEST ” .

Щоб виконати це, мені потрібно внести зміни в нещодавно створену збережену процедуру за допомогою оператора ALTER .

Збережені процедури в SQL |  Огляд

У цьому прикладі ми використали оператор ALTER , який використовується для зміни нашої збереженої процедури. Ви також можете застосувати це до представлень і таблиць. Коли ми запустимо код на знімку екрана вище, він має змінити запити, які оброблятиме наша збережена процедура.

Цього разу таблиця не створюватиметься заново, як це було раніше. Якщо ми виконаємо “ usp_TEST ”, він просто перенесе дані з таблиці Sales.SalesOrderHeader .

Збережені процедури в SQL |  Огляд

Збережені процедури в SQL |  Огляд

Третій зразок сценарію

Давайте зробимо інший приклад. Цього разу ми повторно використаємо таблицю dbo.stageOrders, яку ми мали в нашому першому прикладі створення збереженої процедури в SSMS . Ми почнемо з цього прикладу, вибравши таблицю dbo.stageOrders. 

Збережені процедури в SQL |  Огляд

Результати після вибору всіх даних з dbo.stageOrders мають бути такими.

Збережені процедури в SQL |  Огляд

Тепер давайте очистимо таблицю dbo.stageOrders, виконавши usp_TEST . Ми можемо зробити це, додавши таку команду.

Збережені процедури в SQL |  Огляд

Після додавання команди TRUNCATE TABLE нам потрібно оновити usp_TEST .

Збережені процедури в SQL |  Огляд

Після цього має відобразитися повідомлення про те, що команди виконано успішно . Потім ми знову виконаємо usp_TEST .

Збережені процедури в SQL |  Огляд

Після виконання usp_TEST він покаже всі записи з Sales.SalesOrderHeader , а також очистить таблицю dbo.stageOrders

Збережені процедури в SQL |  Огляд

Щоб перевірити, чи таблиця dbo.stageOrders порожня, нам потрібно вибрати її за допомогою наступної команди та виконати.

Збережені процедури в SQL |  Огляд

Після запуску коду вище ми бачимо, що таблиця dbo.stageOrders тепер порожня. Це пов’язано з командою TRUNCATE TABLE , яку ми використовували для оновлення usp_TEST .

Збережені процедури в SQL |  Огляд

Розташування збережених процедур у SQL

Якщо ви хочете побачити, де зберігається збережена процедура, перейдіть на панель Object Explorer ліворуч і клацніть значок « + » перед базою даних, над якою ви працюєте.

Збережені процедури в SQL |  Огляд

Потім клацніть правою кнопкою миші « Програмованість» і виберіть «Оновити» .

Збережені процедури в SQL |  Огляд

Збережені процедури в SQL |  Огляд

Розгорніть папку або групу «Програмування» , клацнувши піктограму « + ». Потім розгорніть групу збережених процедур, виконавши той самий крок. Усередині групи збережених процедур ви повинні побачити dbo.usp_TEST .

Збережені процедури в SQL |  Огляд

Збережені процедури в SQL |  Огляд

Якщо ви хочете перевірити, які команди чи запити виконує конкретна збережена процедура в SQL, ви можете клацнути правою кнопкою миші збережену процедуру та виконати кроки, наведені на знімку екрана нижче.

Збережені процедури в SQL |  Огляд

Після цього він відкриє збережену процедуру на іншій вкладці, де ви зможете побачити надані в ній команди. Ось як dbo.usp_TEST виглядає після його відкриття.

Збережені процедури в SQL |  Огляд

Як бачите, перед оператором CREATE є кілька команд за замовчуванням . Ви можете просто видалити це, якщо хочете. 

Збережені процедури в SQL |  Огляд

Тепер ви знаєте, як перевірити, які команди виконує збережена процедура в SQL .

Створення збереженої процедури в SQL із параметрами

Далі ми створимо збережену процедуру з параметрами. Наприклад, ми збираємося використовувати наступний код для створення нової збереженої процедури.

Збережені процедури в SQL |  Огляд

У прикладі коду я використав той самий процес створення збереженої процедури під назвою usp_GetCustomer . Потім я додав параметр @CustomerID із типом введення INT .

Зауважте, що після того, як ви додали параметр під час створення збереженої процедури, вам слід завжди вказувати параметр, коли ви збираєтеся виконати команду.

Давайте подивимося, що станеться, якщо ми виконаємо usp_GetCustomer без надання параметра.

Збережені процедури в SQL |  Огляд

Після виконання usp_GetCustomer без параметра з’явилося повідомлення про помилку. Ось як це буде виглядати, якщо ми виконаємо usp_GetCustomer з параметром.

Збережені процедури в SQL |  Огляд

З наданим параметром ми можемо отримати належний результат під час виконання нашої збереженої процедури .

Створення збереженої процедури зі значенням за замовчуванням

Якщо ви хочете уникнути отримання повідомлення про помилку під час виконання збереженої процедури з параметром, ви можете встановити значення за замовчуванням, яке буде служити параметром за замовчуванням.

Наприклад, ми збираємося створити збережену процедуру під назвою usp_GetOrdersByYear .

Потім я додам параметр @OrderYear із типом введення « INT » і значенням за замовчуванням, яке дорівнює 2011 .

Збережені процедури в SQL |  Огляд

Якщо ми виконаємо usp_GetOrdersByYear без наданого параметра, відобразяться записи з 2011 роком .

Збережені процедури в SQL |  Огляд

Збережені процедури в SQL |  Огляд

З іншого боку, якщо ми виконуємо usp_GetOrdersByYear із заданим параметром 2014 , він має відображати записи з 2014 роком .

Збережені процедури в SQL |  Огляд

Збережені процедури в SQL |  Огляд

Ось як ви використовуєте збережені процедури у щоденних завданнях керування даними.



Висновок

Взявши все до уваги, ви дізналися, що таке збережена процедура в SQL і її призначення. Ми також обговорили інструкцію ALTER , яка використовується для внесення змін або оновлень у наявну збережену процедуру.

Крім того, ви дізналися, що існують різні методи створення збережених процедур у SQL, і дізналися, як уникнути отримання помилок під час виконання збереженої процедури, вказавши значення за замовчуванням.

Найважливіше те, що ви навчилися використовувати збережені процедури для зберігання наборів команд, щоб уникнути багаторазового запуску довгих наборів коду. Як останнє нагадування, не забудьте використовувати символ « @ » під час надання параметра.

Все найкраще,

Хафіз


Що таке Power Query та мова M: детальний огляд

Що таке Power Query та мова M: детальний огляд

Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.

Створення звіту з розбивкою на сторінки: додавання текстів і зображень

Створення звіту з розбивкою на сторінки: додавання текстів і зображень

Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.

Функція автоматизації SharePoint | Вступ

Функція автоматизації SharePoint | Вступ

Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Вирішіть задачу аналізу даних за допомогою прискорювача LuckyTemplates

Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!

Підсумки в LuckyTemplates за допомогою DAX

Підсумки в LuckyTemplates за допомогою DAX

Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.

Змінні LuckyTemplates Dax постійні: що це означає?

Змінні LuckyTemplates Dax постійні: що це означає?

Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.

Діаграма нахилу LuckyTemplates: огляд

Діаграма нахилу LuckyTemplates: огляд

Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.

Колірні теми LuckyTemplates для однорідної візуалізації

Колірні теми LuckyTemplates для однорідної візуалізації

Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Обчислення середнього значення в LuckyTemplates: виділення результатів у будні чи вихідні за допомогою DAX

Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Шаблони LuckyTemplates | Стандартне оформлення робочого столу LuckyTemplates

Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.