Студопедия
Главная страница | Контакты | Случайная страница

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

ProblemForExamSQLQuery19.sql – Solution

Читайте также:
  1. ProblemForExamSQLQuery04.sql - Solution
  2. ProblemForExamSQLQuery09.sql – Solution
  3. ProblemForExamSQLQuery13.sql - Solution
  4. ProblemForExamSQLQuery16.sql - Solution
  5. ProblemForExamSQLQuery20.sql – Solution
  6. ProblemForExamSQLQuery25.sql – Solution

 

-- **********************************************************************

-- Создаем хранимую процедуру удаления всех SQL функций пользователя

-- **********************************************************************

IF OBJECT_ID('dbo.drop_all_SQL_functions', 'P') IS NOT NULL

DROP PROCEDURE dbo.drop_all_SQL_functions

GO

CREATE PROCEDURE dbo.drop_all_SQL_functions @cnt int OUTPUT

AS

BEGIN

DECLARE @function_name nvarchar(255), @SqlString nvarchar(1000)

SET @cnt = 0

DECLARE function_list CURSOR FORWARD_ONLY STATIC FOR

SELECT name FROM sys.objects WHERE type = 'FN' OR type = 'IF' OR type = 'TF'

OPEN function_list

FETCH NEXT FROM function_list into @function_name

WHILE @@FETCH_STATUS = 0

BEGIN

SET @cnt = @cnt+1

SET @SqlString = N'IF OBJECT_ID(N''[dbo].['+@function_name+']'', ''FN'') IS NOT NULL

DROP FUNCTION [dbo].['+@function_name+']'

EXEC (@SqlString)

SET @SqlString = N'IF OBJECT_ID(N''[dbo].['+@function_name+']'', ''IF'') IS NOT NULL

DROP FUNCTION [dbo].['+@function_name+']'

EXEC (@SqlString)

SET @SqlString = N'IF OBJECT_ID(N''[dbo].['+@function_name+']'', ''TF'') IS NOT NULL

DROP FUNCTION [dbo].['+@function_name+']'

EXEC (@SqlString)

FETCH NEXT FROM function_list into @function_name

END

CLOSE function_list

DEALLOCATE function_list

END

GO

-- **********************************************************************

-- Проверяем хранимую процедуру удаления всех SQL функций бпользователя

-- **********************************************************************

SELECT * FROM sys.sql_modules

GO

DECLARE @cnt int

EXEC dbo.drop_all_SQL_functions @cnt OUTPUT

SELECT @cnt

EXEC dbo.drop_all_SQL_functions @cnt OUTPUT

SELECT @cnt

GO

SELECT * FROM sys.sql_modules

GO

 

 

Вариант 12

 

Создать хранимую процедуру с выходным параметром, которая выводит текст на языке SQL всех скалярных SQL функций пользователя (функции типа 'FN') в текущей базе данных, имена которых начинаются с префикса 'ufn'. Выходной параметр возвращает количество найденных функций. Созданную хранимую процедуру протестировать.

 

Рекомендации.

  1. Информацию об объектах базы данных можно извлечь из системного представления sys.objects.
  2. Информацию о модулях базы данных можно извлечь из системного представления sys.sql_modules.

 

--------------

 
DROP PROCEDURE MetadataWorker GO CREATE PROCEDURE MetadataWorker @count INT OUT WITH RECOMPILE AS BEGIN SELECT sm.definition as Def FROM sys.objects AS o JOIN sys.sql_modules AS sm ON sm.object_id = o.object_id WHERE o.type = 'FN' AND o.name LIKE '%'; SET @count = @@ROWCOUNT; END GO DECLARE @c int; EXEC MetadataWorker @c OUT; PRINT @c; GO вместо '%' там 'ufn%' или что то такое - в условии префикс указан

 

 

Вариант 13

 

Создать хранимую процедуру с выходным параметром, которая выводит список имен и параметров всех скалярных SQL функций пользователя (функции типа 'FN') в текущей базе данных. Имена функций без параметров не выводить. Имена и список параметров должны выводиться в одну строку. Выходной параметр возвращает количество найденных функций. Созданную хранимую процедуру протестировать.

 

Рекомендации.

  1. Информацию об объектах базы данных можно извлечь из системного представления sys.objects.
  2. Информацию о параметрах объектов можно извлечь из системного представления sys.parameters.

 

Вариант 14

 

Создать хранимую процедуру с выходным параметром, которая уничтожает все представления в текущей базе данных, которые не были зашифрованы. Выходной параметр возвращает количество уничтоженных представлений. Созданную хранимую процедуру протестировать.

 

Рекомендации.

  1. Для уничтожения представления воспользоваться инструкцией DROP VIEW.
  2. Информацию об объектах базы данных можно извлечь из системного представления sys.objects.
  3. Информацию о модулях базы данных можно извлечь из системного представления sys.sql_modules.

 




Дата добавления: 2015-02-16; просмотров: 63 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав