171
ПРАКТИЧЕСКАЯ
РАБОТА
№10.
СОЗДАНИЕ,
ИЗМЕНЕНИЕ,
ПРИМЕНЕНИЕ И УДАЛЕНИЕ ФУНКЦИЙ И ХРАНИМЫХ ПРОЦЕДУР
10.1 Цель практической работы
Изучение синтаксиса и семантики функций и хранимых процедур Transact– SQL:
способов их идентификации, методов задания и спецификации параметров и
возвращаемых значений, кодирования тела и вызовов функций и хранимых процедур,
применение команд для создания, изменения и удаления системных и пользовательских
как
скалярных, так и табличных (с одной Inline или несколькими Multi – statement
командами в теле) функций, системных, пользовательских, временных (локальных или
глобальных) и расширенных хранимых процедур, а
также приобретение навыков
программирования, отладки, тестирования и включения в группу или подключения
библиотеки функций и хранимых процедур.
10.2 Методические рекомендации для выполнения практических работ
Функции и хранимые процедуры
используются в SQL Server для реализации на
языке Transact-SQL сложных часто используемых алгоритмов обработки данных или
различных административных действий создания учетных записей,
получения
информации об объектах базы данных, управления свойствами сервера и баз данных,
управления подсистемой репликации и автоматизации и т.д. Они хранятся в виде
исходного текста и являются программными модулями, существующими независимо от
таблиц или каких либо других объектов баз данных. Исключением являются
расширенные
хранимые процедуры, которые хранятся в двоичном формате в виде
динамически подключаемых библиотек типа *.dll и создаются с помощью других языков
программирования с использованием интерфейса SQL Server Open Data Services API.
Такие процедуры подключаются, отключаются и выгружаются соответственно
командами sp_addextendedproc, sp_dropextendedproc и DBCC dlname (FREE), где dllno
me_имя dll_библиотеки.
Хранение функций и хранимых процедур в виде исходных модулей языка Transact
– SQL на сервере и в соответствующих базах данных
позволяет уменьшить размр
запроса, посылаемого по сети от клиента на сервер, а следовательно и нагрузку на сеть,
что повышает общую производительность системы. Это также позволяет упростить
сопровождение программных комплексов и внесение изменений в исходный текст
модулей, причем большинство изменений не отразится на работоспособности
клиентских приложений.
Значительная часть функций и хранимых процедур поставляются в составе SQL
Server.
Они называются системными, или встроенными (built - in). Кроме того,
пользователю предоставляется возможность разрабатывать и включать в свою базу
данных собственные, или пользовательские (user-defined) функции и хранимые
процедуры, реализующие специальные алгоритмы обработки данных.
Таким образом,
пользовательские функции и хранимые процедуры становятся объектами той базы
данных, в которой они создавались. Поэтому при их создании, если необходимо,
требуемую базу данных следует сделать текущей с помощью команды USE имя базы
данных. Системные же функции хранятся на экземпляре сервера, а системные хранимые
процедуры – в базе master этого же экземпляра сервера.
В SQL Server можно создавать и так называемые временные хранимые процедуры
в базе данных
tempdb экземпляра сервера, которые существуют лишь некоторое время,
после чего автоматически уничтожаются сервером. Они бывают локальными и
глобальными.