Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Задание 2. Создайте хранимую процедуру, принимающую число в качестве делителя и возвращающую количество цифр в нем через параметр OUTPUT.

Лабораторная работа №4

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

Цель: научить создавать и вызывать пользовательские хранимые процедуры, а также передавать в них параметры.

 

Теоретический материал: перед выполнением лабораторной работы рекомендуется изучить лекцию №3 «Общие сведения о Transact-SQL», в которой даны основы синтаксиса языка SQL, и лекцию №5 «Вспомогательные объекты базы данных», где приведены базовые сведения о хранимых процедурах.

 

Требования к отчету: по результатам работы представить набор SQL‑ скриптов, решающих задачи из раздела «Самостоятельная работа».

Задание 1. Создайте хранимую процедуру, которая выводит имя компьютера, на котором выполняется команда. Если имя компьютера более девяти букв, то вывести только первые шесть букв.

 

Указания к выполнению:

1. Для получения имени компьютера воспользуйтесь функцией HOST_NAME().

2. Для создания процедуры выполните следующий код:

 

CREATE PROCEDURE Test AS

IF (DATALENGTH(HOST_NAME()) / 2 > 9)

SELECT LEFT(HOST_Name(), 6) + ‘...'

ELSE

SELECT HOST_Name()

Замечание. Хранимая процедура будет создана в текущей базе данных.

3. Убедитесь, что хранимая процедура была создана (см. рис. 4.1).

 

Рис. 4.1. Список хранимых процедур в БД

4. Вызовите созданную хранимую процедуру, выполнив следующий код:

 

TEST

Задание 2. Создайте хранимую процедуру, принимающую число в качестве делителя и возвращающую количество цифр в нем через параметр OUTPUT.

Указания к выполнению:

1. Создайте хранимую процедуру DigitCount с двумя параметрами:

 

CREATE PROCEDURE DigitCount

@num int,

@cnt int OUTPUT

AS

IF (@num = 0) SET @cnt = 1

ELSE BEGIN

SET @cnt = 0

WHILE (@num < > 0) BEGIN

SET @cnt = @cnt + 1

SET @num = @num / 10

END

END

 

2. Вызовите процедуру DigitCount и убедитесь, что она работает верно:

 

DECLARE @num int = 1249

DECLARE @cnt int

EXEC DigitCount @num, @cnt OUTPUT

SELECT @cnt

Замечание. Обратите внимание, что в данном случае использование ключевого слова EXEC обязательно перед вызовом хранимой процедуры, т.к. хранимая процедуры указана в блоке других SQL команд, а не выполняется одна.

<== предыдущая лекция | следующая лекция ==>
Параметр-переменная и параметр-значение. | Теоретическое введение




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.