Збережені процедури в 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, і дізналися, як уникнути отримання помилок під час виконання збереженої процедури, вказавши значення за замовчуванням.

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

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

Хафіз

Leave a Comment

Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

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

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

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