Self-Learning – видеокурсы и книги по IT

Приветствую всех посетителей сайта Self-Learning.ru! Сегодня мы с Вами поговорим о том, чем же отличаются функции от хранимых процедур в Microsoft SQL Server, и для наглядности сформируем итоговую таблицу отличий.

Отличия функций от хранимых процедур в языке T-SQL

Заметка! Что такое T-SQL. Подробное описание для начинающих.

Функции и хранимые процедуры T-SQL

В Microsoft SQL Server существуют такие объекты базы данных, как функции и хранимые процедуры, которые используются для хранения неких уже реализованных алгоритмов на языке T-SQL.

Примечание! В данном материале речь идет о пользовательских функциях и хранимых процедурах, не о системных, которые уже реализованы в SQL Server, а о тех, которые создаем мы с Вами, т.е. программисты T-SQL.

Функции и хранимые процедуры используются в языке T-SQL для реализации бизнес логики, упрощения сложных SQL запросов, а также для написания различных инструкций администрирования баз данных и сервера, которые периодически необходимо выполнять.

Иными словами, функции и хранимые процедуры – это своего рода мини программы внутри базы данных, они помогают нам реализовывать нужные нам алгоритмы и хранить их в базе данных. Кроме этого, функции и хранимые процедуры позволяют декомпозировать одну глобальную задачу на несколько мелких, тем самым упрощая решение этой задачи и дальнейшее сопровождение этого решения, так как весь алгоритм становится модульным и более гибким.

У начинающих может возникнуть вопрос – а чем отличаются функции от процедур? Или это одно и то же?

Конечно же, это не одно и то же, и между этими понятиями, в контексте языка T-SQL, есть нескольких ключевых отличный.

Заметка! Что нужно знать и уметь разработчику T-SQL.

Отличия функций от хранимых процедур в T-SQL

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

Функция

Хранимая процедура

Функция должна возвращать значение. Хранимая процедура может как возвращать, так и не возвращать значение.
Функции не могут возвращать несколько результирующих наборов. Хранимая процедура может сформировать и вернуть несколько результирующих наборов данных.
Функции можно использовать в операторе SELECT. Процедуры нельзя использовать в операторе SELECT и во всех его секциях (WHERE, JOIN, HAVING и т.д.), так как процедуры вызываются с помощью команды EXECUTE или EXEC.
В функциях можно использовать только оператор SELECT на выборку данных.

Операторы DML (INSERT, UPDATE, DELETE) для модификации данных использовать нельзя.

В хранимых процедурах можно использовать оператор SELECT, а также операторы DML (INSERT, UPDATE, DELETE) для модификации данных.
Из функции нельзя вызвать хранимые процедуры. В хранимых процедурах можно вызывать и функции, и другие хранимые процедуры.
Конструкцию для обработки ошибок TRY CATCH нельзя использовать в функциях. Так же как нельзя использовать инструкцию RAISERROR. В хранимых процедурах можно использовать и конструкцию TRY CATCH, и инструкцию RAISERROR.
В функциях запрещено использование транзакций. В хранимых процедурах транзакции разрешены.
В функциях можно использовать только табличные переменные, временные таблицы использовать не получится. В хранимых процедурах можно использовать как табличные переменные, так и временные таблицы.
В функциях нельзя использовать динамический SQL. В процедурах можно использовать динамический SQL.
В функциях можно использовать только входные параметры. В хранимых процедурах можно использовать как входные, так и выходные параметры.

Заметка! Курсы по T-SQL для начинающих.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Теги: #
Понравилась статья? Поделитесь с друзьями:
Share on VK
VK
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
Share on Tumblr
Tumblr
Share on Reddit
Reddit
Email this to someone
email

Авторские онлайн-курсы по T-SQL

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пролистать наверх