Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

новая папка / gopezotoropenunevaro

.docx
Скачиваний:
5
Добавлен:
20.05.2020
Размер:
31.19 Кб
Скачать

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

Весь код :

№1

--1.1

SELECT COUNT(*) FROM (

SELECT ROUTINE_NAME FROM master.INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME LIKE 'sp_%'

UNION

SELECT ROUTINE_NAME FROM msdb.INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_NAME LIKE 'sp_%'

) names

--1.2

select count(*) from sys.all_objects where type = 'p' and name like 'sp_%'

--1.3

sp_stored_procedures -- возвращает список сохраненных процедур текущей базы данных

№2

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE time_year

@date DATE

AS

Begin

set dateformat dym

declare @месяц int = MONTH(@date)

declare @opr nvarchar(60)

IF (@месяц = 12 or @месяц= 1 or @месяц= 2)

set @opr = 'ЗИМА'

IF (@месяц = 3 or @месяц= 4 or @месяц= 5)

set @opr = 'ВЕСНА'

IF (@месяц = 6 or @месяц= 7 or @месяц= 8)

set @opr = 'ЛЕТО'

IF (@месяц = 11 or @месяц= 10 or @месяц= 9)

SET @opr = 'ОСЕНЬ'

PRINT @opr

END

-- Set date format to month/year/day

set dateformat myd

exec time_year '1-2000-21'

№3

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

CREATE PROCEDURE age

@DATE DATE

AS

BEGIN

DECLARE @возраст int = YEAR(GETDATE())- YEAR(@date)

if @возраст > 16

print 'есть 16'

else

print 'нет 16'

end

set dateformat mdy

exec age '05/05/2001'

№4

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

Create procedure mail @mail varchar(60)

WITH ENCRYPTION

AS

BEGIN

DECLARE @index int = charindex('@' , @mail)

DECLARE @index_1 int = charindex('.' , @mail)

if (@index_1 > @index)

print ('email есть')

else

print ('email нет')

END

EXEC mail 'fdsaghtrt@mail.ru'

--ИЛИ

/*Create procedure mail

@mail varchar(60)

as

BEGIN

if (@mail LIKE '[a-zA-Z]%@[a-zA-Z]%.[a-zA-Z]%') -- можно реализовать : через charindex , через @mail LIKE '_%@__%.__%' или сделать с учетом англ.символов @mail LIKE '[a-zA-Z]%@[a-zA-Z]%.[a-zA-Z]%'

print ('email есть')

else

print ('email нет')

end

*/

№5 Удаляем все процедуры

drop procedure time_year;

drop procedure age;

drop procedure mail;

Изображение результатов :

№1

№2

№3

№4

№5

Соседние файлы в папке новая папка