Similar presentations:
Базы данных. Процедуры и функции
1. Базы данных
БАЗЫ ДАННЫХЛекция 11 Процедуры и функции
2. Процедуры и функции
• Пакет (batch)• Подпрограмма (routine)
• Процедура
• Функция
• Системные
• Пользовательские
3. Пакет
• Пакет — это последовательностьинструкций, которые отправляются
системе базы данных для совместного их
выполнения
• Преимущество – одновременное
исполнение всех инструкций позволяет
получить улучшение производительности
4. Пакет
• Ограничение на единственнуюинструкцию:
• CREATE VIEW
• CREATE PROCEDURE
• CREATE TRIGGER
5. Хранимые процедуры
• Хранимая процедура – объект базыданных
• Хранимая процедура – поименованный
блок (BEGIN…END) операторов,
хранящийся в базе данных в
откомпилированном виде
6. Хранимые процедуры
EXEC@
View
Stored
Procedure
SELECT
Input
Parameter
INSERT
Output
Parameter
@
Table
7. Хранимые процедуры
• Принимает входные параметры• Принимаете и формирует выходные
параметры
8. Хранимые процедуры
• Целочисленное значение, возвращаемоек точке вызова с помощью оператора
RETURN
• Один или более результирующих наборов,
сформированных операторами SELECT
• Содержимое стандартного выходного
потока, полученного при выполнении
операторов PRINT
9. Хранимые процедуры
Результирующий набор хранимойпроцедуры может быть использован в
качестве источника строк для INSERT
10. Хранимые процедуры
• Допускается применение :• Основных DDL, DML и TCL-
операторов
• Конструкций TRY/CATCH
• Курсоров
• Временных таблиц
11. Хранимые процедуры
• Не допускается применение :• CREATE or ALTER FUNCTION
• CREATE or ALTER TRIGGER
• CREATE or ALTER PROCEDURE
• CREATE or ALTER VIEW
• USE databasename
12. Хранимые процедуры
13. Хранимые процедуры
14. Хранимые процедуры
15. Хранимые процедуры
16. Хранимые процедуры
Возможентолько
числовой код
возврата
17. Хранимые процедуры
18. ROW_NUMBER() OVER
19. ROW_NUMBER() OVER
20. WITH
21. Передача параметров
22. Передача параметров
23. Передача параметров
24. Хранимые процедуры
25. Хранимые процедуры
• ALTER PROCEDURE• DROP PROCEDURE
• sp_rename
26. Хранимые процедуры
27. Хранимые процедуры
28. Динамичесий SQL
• sp_executesqlDECLARE @sqlcode AS NVARCHAR(256) =
N'<code_to_run>';
EXEC sys.sp_executesql @statement = @sqlcode;
DECLARE @sqlcode AS NVARCHAR(256) =
N'SELECT GETDATE() AS dt';
EXEC sys.sp_executesql @statement = @sqlcode;
29. Функции
• Встроенные• Математические
• Строковые
• Работа с датами
• Пользовательские
30. Функции
• Не допускается применение:• DDL-операторов
• DML-операторов изменяющих данные
(INSERT, DELETE, UPDATE)
• конструкций TRY/CATCH
• транзакций
31. Функции
• Скалярные• Inline
• Multi-Statement
32. Функции
@Input
Parameter
5
Return
Value
SELECT …
RETURN
Scalar
Function
@
Input
Parameter
Return
Tabular
Data
@
Input
Parameter
Return
Tabular
Data
SELECT …
RETURN
INSERT …
SELECT …
RETURN
Inline TableValued Function
Multi-statement
Table-Valued
Function
33. Функции
• Скалярные• возвращает одно значение
• нельзя timestamp, cursor, text, ntext,
image, table
34. Хранимые процедуры
35. Функции
• Inline• одна команда SELECT
• возврат table
36. Функции
37. Функции
38. Функции
39. Функции
40. Функции
• Multi-Statement• возвращает table
• несколько команд
41. Функции
42.
43. Функции
44. Хранимые процедуры
• DROP FUCTION• ALTER FUNCTION