50
ISSN 2616-8901. Математика және жаратылыстану-техникалық сериясы № 4/ 2018 RETURNS сөйлеміне қайтаратын мән типін көрсететін TABLE кілттік сөзі жазылады. Осындай
функция қайтаратын кесте бағандары SELECT инструкциясымен анықталады. Функция денесі
RETURN командасымен беріледі, ол орындалғаннан кейін функция жұмысын тоқтатады [5].
CREATE FUNCTION СтажРаботы()
RETURNS TABLE
AS
RETURN
(
SELECT Анкета.ФИО,Анкета.Таб_ном, Анкета.Дата_поступ,
If ((MONTH(GetDate())-
MONTH(Анкета.Дата_поступ))>=0,Year(GetDate())-
Year(Анкета.Дата_поступ),Year(GetDate())-
Year(Анкета.Дата_поступ)-1) AS Стаж
FROM dbo.Анкета
)
Сұранысты сақтап, орындауға жіберейік. Егер орындалу сәтті аяқталса, онда функция
атауы жобаның навигация аймағында пайда болады.
Келесі мысалда “Отпуск_за_данный_месяц” деп аталатын кірістірілген функцияны
құрайық. Бұл функцияға айдың реттік номер параметрі беріледі және осы айда демалысқа
шығатын қызметкерлер тізімін қайтарады.
CREATE FUNCTION Отпуск_за_данный_месяц
(@Месяц int)
RETURNS TABLE
AS
RETURN
(
SELECT dbo.Сотрудники.ФИО, dbo.Сотрудники.Таб_ном,
dbo.Сотрудники.Ном_подразд,
dbo.Сотрудники.Должность,
dbo.График_отпусков.Начало_отпуска,
dbo.График_отпусков.Кол_дней
FROM dbo.Сотрудники INNER JOIN
dbo.График_отпусков ON dbo.Сотрудники.Таб_ном =
dbo.График_отпусков.Таб_ном
WHERE MONTH(dbo.График_отпусков.Начало_отпуска) = @Месяц
)
Әрі қарай сақталатын процедура құрамыз. Ол үшін “Кадры” ДҚ-н таңдап,
“Программирование” тармағын ашамыз. “Хранимые процедуры” тармағында жанама менюді
шақырып, “Создать хранимую процедуру” командасын орындаймыз.
CREATE PROCEDURE СписокСотрудников
@Номер_подразд int
AS
BEGIN
SELECT dbo.Сотрудники.ФИО, dbo.Сотрудники.Таб_ном,
dbo. Сотрудники.Должность, dbo.Сотрудники.Оклад,
dbo.Анкета.Адрес, dbo.Анкета.Телефон,
dbo.Сотрудники.Ном_подразд
FROM dbo.Сотрудники INNER JOIN
dbo.Анкета ON dbo.Сотрудники.Таб_ном = dbo.Анкета.Таб_номер
WHERE (Сотрудники.Ном_подразд = @Номер_подразд)
ORDER BY Сотрудники.ФИО
END