Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Laboratornyi_774_praktikum.doc
Скачиваний:
28
Добавлен:
17.06.2021
Размер:
921.09 Кб
Скачать

If @Страна is not null

BEGIN

If @Город is not null

SELECT *

FROM Регион

WHERE Страна = @Страна AND Город = @Город

ELSE

SELECT *

FROM Регион

WHERE Страна = @Страна

END

ELSE

If @Город is not null

SELECT *

FROM Регион

WHERE Город = @Город

GO

/* Проверка работы хранимой процедуры pr_ДанныеРегионов;3 */

EXEC pr_ДанныеРегионов;3

EXEC pr_ДанныеРегионов;3 @Город = 'Минск'

EXEC pr_ДанныеРегионов;3 DEFAULT, 'Воложин'

EXEC pr_ДанныеРегионов;3 'Россия'

EXEC pr_ДанныеРегионов;3 NULL, 'Алушта'

GO

/* Вставка новой строки в таблицу "Валюта" */

CREATE PROCEDURE pr_ВставкаВалюты

@Код CHAR(3),

@Имя VARCHAR(30),

@Курс SMALLMONEY = 1000,

@Шаг NUMERIC(10, 4) = 0.01

AS

Insert into Валюта

Values(@Код, @Имя, @Шаг, @Курс)

GO

/* Проверка работы хранимой процедуры pr_ВставкаВалюты */

EXEC pr_ВставкаВалюты 'WWW', 'Валюта страны W'

EXEC pr_ВставкаВалюты 'XXX', 'Валюта страны X', 500, 1

EXEC pr_ВставкаВалюты 'YYY', 'Валюта страны Y', 250

EXEC pr_ВставкаВалюты 'ZZZ', 'Валюта страны Z', @Шаг = 50

SELECT * FROM Валюта

GO

/* Выбор курса валюты по ее коду */

CREATE PROCEDURE pr_ВыборКурсаВалюты

@Код CHAR(3),

@Курс SMALLMONEY OUTPUT

AS

IF @Код IS NOT NULL

SELECT @Курс = КурсВалюты

FROM Валюта

WHERE КодВалюты = @Код

ELSE

SELECT @Курс = КурсВалюты

FROM Валюта

WHERE КодВалюты = 'USD'

GO

/* Проверка работы хранимой процедуры pr_ВыборКурсаВалюты */

DECLARE @Code CHAR(3), @Course SMALLMONEY

SET @Code = 'EUR'

EXEC pr_ВыборКурсаВалюты @Code, @Course OUTPUT

SELECT @Code AS [Код валюты], @Course AS [Курс валюты]

EXEC pr_ВыборКурсаВалюты NULL, @Course OUTPUT

SELECT 'USD' AS [Код валюты], @Course AS [Курс валюты]

GO

/* Выбор имени клиента и ФИО руководителя по коду клиента */

CREATE PROCEDURE pr_ДанныеКлиента;1

@Код INT,

@Имя VARCHAR(40) OUTPUT,

@ФИО VARCHAR(60) OUTPUT

AS

SELECT @Имя = ИмяКлиента, @ФИО = ФИОРуководителя

FROM Клиент

WHERE КодКлиента = @Код

GO

/* Проверка работы хранимой процедуры pr_ДанныеКлиента;1 */

DECLARE @Code INT, @Name VARCHAR(40), @FIO VARCHAR(60)

SET @Code = 5

EXEC pr_ДанныеКлиента;1 @Code, @Name OUTPUT, @FIO OUTPUT

SELECT @Name AS [Имя клиента], @FIO AS [ФИО руководителя]

GO

/* Выбор данных о клиенте по любому из трех параметров */

CREATE PROCEDURE pr_ДанныеКлиента;2

@Код INT = NULL OUTPUT,

@Имя VARCHAR(40) = NULL OUTPUT,

@ФИО VARCHAR(60) = NULL OUTPUT

AS

IF @Код IS NOT NULL

SELECT @Имя = ИмяКлиента, @ФИО = ФИОРуководителя

FROM Клиент

WHERE КодКлиента = @Код

ELSE

IF @Имя IS NOT NULL

SELECT @Код = КодКлиента, @ФИО = ФИОРуководителя

FROM Клиент

WHERE ИмяКлиента = @Имя

ELSE

IF @ФИО IS NOT NULL

SELECT @Код = КодКлиента, @Имя = ИмяКлиента

FROM Клиент

WHERE ФИОРуководителя = @ФИО

GO

/* Проверка работы хранимой процедуры pr_ДанныеКлиента;2 */

DECLARE @Code INT, @Name VARCHAR(40), @FIO VARCHAR(60)

SET @Code = 1

EXEC pr_ДанныеКлиента;2 @Code, @Name OUTPUT, @FIO OUTPUT

SELECT @Code AS [Код клиента], @Name AS [Имя клиента],

@FIO AS [ФИО руководителя]

SET @Code = NULL

SET @Name = 'ИП "Темп"'

EXEC pr_ДанныеКлиента;2 @Code OUTPUT, @Name, @FIO OUTPUT

SELECT @Code AS [Код клиента], @Name AS [Имя клиента],

@FIO AS [ФИО руководителя]

SET @Code = NULL

SET @Name = NULL

SET @FIO = 'Прокушев Станислав Игоревич'

EXEC pr_ДанныеКлиента;2 @Code OUTPUT, @Name OUTPUT, @FIO

SELECT @Code AS [Код клиента], @Name AS [Имя клиента],

@FIO AS [ФИО руководителя]

GO

/* Процедура создания и наполнения данными глобальной временной таблицы */

CREATE PROCEDURE pr_КопияРегионов

@Страна VARCHAR(20) = 'Беларусь',

@Город VARCHAR(20) = 'Минск'

AS