рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Создание, изменение, применение и удаление функций и хранимых процедур

Создание, изменение, применение и удаление функций и хранимых процедур - раздел Программирование, Архитектура сервера MS SQL-Server 2000     Цель Работы– Изучение Синтак...

 

 

Цель работы– изучение синтаксиса и семантики функций и хранимых процедур Transact

– SQL: способов их идентификации, методов задания и спецификации параметров и возвращаемых значений, кодирования тела и вызовов функций и хранимых процедур, применение команд для создания, изменения и удаления системных и пользовательских как скалярных, так и табличных (с одной Inline или несколькими Multi – statement командами в теле) функций, системных, пользовательских, временных (локальных или глобальных) и расширенных хранимых процедур, а также приобретение навыков программирования, отладки, тестирования и включения в группу или подключения библиотеки функций и хранимых процедур.

 

 

Функции и хранимые процедуры используются в SQL Server 2000 для реализации на языке Transact-SQL сложных часто используемых алгоритмов обработки данных или различных административных действий создания учетных записей, получения информации об объектах базы данных, управления свойствами сервера и баз данных, управления подсистемой репликации и автоматизации и т.д. Они хранятся в виде исходного текста и являются программными модулями, существующими независимо от таблиц или каких либо других объектов баз данных. Исключением являются расширенные хранимые процедуры, которые хранятся в двоичном формате в виде динамически подключаемых библиотек типа *.dll и создаются с помощью других языков программирования с использованием интерфейса SQL Server Open Data Services API. Такие процедуры подключаются, отключаются и выгружаются соответственно командами sp_addextendedproc, sp_dropextendedproc и DBCC dlname (FREE), где dllno me_имя dll_библиотеки.

Хранение функций и хранимых процедур в виде исходных модулей языка Transact – SQL на сервере и в соответствующих базах данных позволяет уменьшить размр запроса, посылаемого по сети от клиента на сервер, а следовательно и нагрузку на сеть, что повышает общую производительность системы. Это также позволяет упростить сопровождение программных комплексов и внесение изменений в исходный текст модулей, причем большинство изменений не отразится на работоспособности клиентских приложений.

Значительная часть функций и хранимых процедур поставляются в составе SQL Server

2000. Они называются системными, или встроенными (built - in). Кроме того, пользователю предоставляется возможность разрабатывать и включать в свою базу данных собственные, или пользовательские (user-defined) функции и хранимые процедуры, реализующие специальные алгоритмы обработки данных. Таким образом, пользовательские функции и хранимые процедуры становятся объектами той базы данных, в которой они создавались. Поэтому при их создании, если необходимо, требуемую базу данных следует сделать текущей с помощью команды USE имя базы данных. Системные же функции хранятся на экземпляре сервера, а системные хранимые процедуры – в базе master этого же экземпляра сервера.


В SQL Server 2000 можно создавать и так называемые временные хранимые процедуры в базе данных tempdb экземпляра сервера, которые существуют лишь некоторое время, после чего автоматически уничтожаются сервером. Они бывают локальными и глобальными. Локальные хранимые процедуры должны иметь имя, начинающееся с символа #, и могут быть вызваны только из того соединения, в котором они были созданы. Они автоматически удаляются при отключении пользователя, перезапуске или остановке сервера. Глобальные хранимые процедуры должны иметь имя, начинающееся с символов ##, и доступны для любых соединений с экземпляром сервера, на котором они были созданы. Они удаляются либо при закрытии соединения, в контексте которого они были созданы, либо автоматически – при перезапуске или остановке сервера.

Функции и хранимые процедуры могут быть вызваны клиентскими программами, другими функциями или хранимыми процедурами, а также триггерами. В любом случае необходимо указать имя функции или хранимой процедуры и список аргументов, которые сопоставляются параметрам соответствующей функции или хранимой процедуры при этом типы аргументов и параметров должны совпадать или допускать автоматические преобразования типов. Если для некоторого параметра задано значение по умолчанию и это значение подходит для данного вызова, то соответствующий аргумент может быть опущен. Поскольку функция возвращает значение, она используется в качестве операнда некоторого выражения в виде вызова функций, состоящего из имени этой функции и списка аргументов, заключенного в круглые скобки, при этом в качестве аргументов могут быть любые выражения языка Transact – SQL, дающие в результате значения требуемых типов. Аргументы в вызове функции отделяются запятыми. Если список аргументов пуст, то круглые скобки после имени функции, как правило, задаются. Исключения составляют некоторые системные функции, для которых круглые скобки не задаются, когда нет аргументов. Хранимые процедуры могут вызываться только командой EXECUTE, или сокращенно EXEC. За этой командой должны быть указаны имя процедуры и через пробел список аргументов, если вызывается процедура с параметрами. Аргументы разделяются запятой. Если для параметра задано значение по умолчанию, то аргумент либо совсем не задается (в конце списка), либо используется слово DEFAULT(в середине списка). Процедура может возвращать результаты только через параметры с ключевым словом OUTPUT, при этом и аргумент должен быть задан с таким же ключевым словом.

Создание, изменение и удаление функций и хранимых процедур производится соответственно командами: CREATE FUNCTION, CREATE PROCEDURE , ALTER FUNCTION, ALTER PROCEDURE, DROP FUNCTION, DROP PROCEDURE. При создании функции указывается тип возвращаемого значения и в теле функции обязательно задается команда RETURN, за которой следует выражения для вычисления возвращаемого значения. В теле процедуры использование команды RETURN(конечно, без последующего выражения) вовсе не обязательно. Когда этой команды нет, выход из процедуры будет происходить после исполнения последней команды процедуры.

Тело, как функции, так и хранимой процедуры начинается ключевым словом AS. Поскольку каждая из них храниться как отдельный объект, то для указания конца тела не требуется записывать какое-либо специальное ключевое слово или знак. За командами создания функции или хранимой процедуры перечисляются имена параметров, начинающиеся с символа @, и их типы, а также важно значение по умолчанию. Для функции этот список заключается в круглые скобки, после которых записывается ключевое слово RETURNS (возвращает) и тип возвращаемого значения. Для хранимой процедуры круглые скобки не используются, и задавать тип возвращаемого значение не требуется. Для тела функции часто используют ключевое слово begin после ключевого слова as и ключевое слово end в конце тела. Дополнительные опции функции или хранимой процедуры задаются ключевым словом with до начала тела. Например, опция encryption позволяет зашифровать исходный текст функции или хранимой процедуры и сделать его, таким образом, нечитабельным. Опция функции schemabinding запрещает производить какие-либо изменения в объектах базы данных. Опция хранимой процедуры recompile обеспечивает повторную компиляцию исходного текста процедуры при каждом её вызове. Наконец, опция FOR REPLICATION указывает, что данная хранимая процедура будет использоваться при репликации данных. При создании однотипных хранимых процедур можно использовать для них одно групповое имя. В этом случае конкретная процедура в группе


идентифицируется своим номером, который должен задаваться как при создании, так и при вызове процедуры сразу же после группового имени и отделяться от него точкой с запятой.

Функции и хранимые процедуры можно создавать также с помощью Enterprise Manager, а хранимые процедуры еще и с помощью мастера Create Stored Procedure Wisard.

В SQL Server 2000 можно создавать функции трех классов: Scalar – возвращают обычное скалярное значение;

Inline – возвращают таблицу динамической структуры, создаваемую единственной командой тела функции SELECT;

Multi – statement – возвращает обычную таблицу заданной структуры, при этом количество команд в теле функции не ограничивается.

 

Задание 1.Создать функцию для выполнения четырех арифметических операций “+”, “-

”, “*” и “/” над целыми операндами типа bigint, выполнив кодирование и проверку:

 

1. Кодирование

 

CREATE FUNCTION Calculator

(@ Opd1 bigint,

@ Opd2 bigint,

@ Oprt char(1) = “*”) RETURNS bigint

AS


 

 

END


BEGINT

DECLARE @ Result bigint

SET @ Result = CASE @ Oprt

WHEN “+” THEN @ Opd1 + @ Opd2

WHEN “-” THEN @ Opd1 - @ Opd2

WHEN “*” THEN @ Opd1 * @ Opd2

WHEN “/” THEN @ Opd1 / @ Opd2

ELSE 0


Return @ Result

END

 

2. Тестирование

 

SELECT dbo.Calculator(4,5, ‘+’),

dbo. Calculator(3,7, ‘*’) – dbo.Calculator(64,4,‘/’)*2.

9 -11 (1 row (s) affected)

 

Задание 2.Создать функцию, возвращающую таблицу с динамическим набором столбцов, выполнив кодирование и тестирование:

 

1. Кодирование

 

CREATE FUNCTION DYNTAB (@ State char(2)) RETURNS Table

AS

RETURNS SELECT au_id, au_lname, au_fname FROM authors

WHERE state = @ state

 

2. Проверка

 

SELECT * FROM DYNTAB (“CA”)


ORDER BY au_lname, au_fname au_id au_lname au_fname

 

Задание 3.Создать функцию, разбивающую входную строку на подстроки, используя в качестве разделителя пробелы, выполнив кодирование и тестирование:

 

1. Кодирование

 

CREATE FUNCTION Parse (@ String nvarchar (500)) RETURNS @ tabl TABLE

(Number int IDENTITY (1,1) NOT NULL,

Substr nvarchar (30)) AS

BEGIN

DECLARE @ Str1 nvarchar (500), @ Pos int

SET@Str1 = @String

WHILE 1>0

BEGIN

SET@Pos = CHARINDEX(“ ”, @Str1) IF @POS>0

BEGIN

INSERT INTO @tab1


VALUES (SUBSTRING (@Str1,1,@Pos)) END

 

 

VALUES (@Str1)


 

ELSE


 

 

BEGIN

INSERT INTO @tab1e

 

BREAK END


 

END


END RETURN


 

2. Тестирование

 

DECLARE @ Test String nvchar (500) Set @ TestString = ‘”SQL Server 2000” SELECT * FROM Parse (@ Test String)

------------------------------------------------- Number Substr

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

1 SQL

2 Server

3 2000 (3 row(s)) affected)

 

Задание 4.Создать указанные три функции с помощью утилиты Enterprise Manager и проверить их синтаксис, щелкнув по кнопке Check Syntax (проверить синтаксис), затем сохранить их как шаблон, щелкнув по кнопке Save as Template (сохранить как шаблон).

 

Задание 5.Создать и отредактировать функцию, используя шаблон, полученный в задании №4.


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

 

Задание 7.Используя утилиту Enterprise Manager, ознакомиться с текстами исходных модулей системных функций (если это возможно), их семантикой и способами вызова в выражения, отображая при этом результаты их работы.

 

Задание 8.С помощью Transact-SQL создать три хранимые процедуры, семантика которых аналогична рассмотренным функциям, введя при этом дополнительный параметр для получения результата работы соответствующей процедуры.

 

Задание 9.Отредактировать указанные хранимые процедуры с помощью Enterprise

Manager.

 

Задание 10.Создать эти же процедуры с помощью мастера Create Stored Procedure Wizard и проанализировать их свойства. Протестировать вновь созданные хранимые процедуры. С помощью sp_help получить справочные данные по одной из этих процедур.

 

– Конец работы –

Эта тема принадлежит разделу:

Архитектура сервера MS SQL-Server 2000

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ... БРЕСЛАВЕЦ В С...

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

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Системные базы данных
Системные базы данных сервера, создаваемые при установке, и их файлы представлены в таблице: Таблица №1   Название Назначение

Dtwizard.exe– программа запуска мастера создания пакета DTS
(DTS Import Export Wizard); isql.exe– программа выполнения команд SQL, системных хранимых процедур или файлов команд, использующая интерфейс SQL S

MS SQL Server 2000.
  Цель работы –изучение логической структуры баз данных, которые создаются и используются в системах на основе сервера SQL Server 2000 и функционального назначения их

Основы программирования на Transact – SQL
  Цель работы –изучение структурированного языка запросов Transact – SQL, являющегося основой системы программирования SQL Server 2000, и приобретение навыков примене

Создание, отладка и оптимизация SQL – модулей
  Цель работы– приобретение навыков использования интегрированной среды утилиты SQL Server Query Analyzer для создания, хранения, отладки и оптимизации программных мо

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

Проектирование логической структуры базы данных
    Цель работы– ознакомление с основными понятиями и моделями баз данных, используемых в различных информационных системах, и приобретение навыков инфо

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

Планирование использования, создание и управление индексами
    Цель работы– изучение назначения, типов и способов определения индексов, синтаксиса и семантики команд языка Transact-SQL для их создания, переимено

Создание и управление представлениями
    Цель работы– изучение назначения представлений баз данных, синтаксиса и семантики команд языка Transact-SQL для их создания, изменения и удаления, с

Создание, программирование и управление триггерами
    Цель работы– изучение назначения и типов триггеров, условий их активации, синтаксиса и семантики команд языка Transact – SQL для их создания, модифи

Создание и управление транзакциями
    Цель работы– изучение способов обеспечения надежной работы SQL Server 2000 с помощью механизма транзакций и контрольных точек, приобретение навыков

Управление и мониторинг блокировок
    Цель работы– изучение проблем надежности, возникающих в многопользовательских средах обработки данных, и механизмов блокирования операций различного

Создание, применение и управление курсорами
    Цель работы– изучение назначения и типов курсоров, синтаксиса и семантики команд языка Transact – SQL для создания и открытия курсоров, выборки данн

Реализация клиентских приложений баз данных
  Цель работы– изучить методы создания и использования клиентских приложений для работы с базами данных SQL Server 2000. На примере создания приложения в среде Delphi

Использование
Прежде всего в свойстве Connection в раскрывающемся вписке выбирается доступный объект класса TADOConnection, cсвязывающий SQL-таблицу приложения с конкретной таблицей базы данных, а

Использование
Связь с базой данных происходит, как и в случае ADO-Таблицы, с помощью свойства Connection. Добавим к форме компонент TDBGrid, TDataSource, TDBNavigatorи приложение почти готово. Д

Назначение
Компонент представляет собой обобщенный вариант компонентов TADOTableи TADOQuery.Он содержит несложный редактор SQL-команд, вызываемый при обращении к сво

Система безопасности SQL Server 2000
  Цель работы– изучение общих правил разграничения и предоставление прав доступа пользователям баз данных, архитектуры и компонент системы безопасности SQL Server 200

Регистрация серверов SQL
  Цель работы –приобретение навыков регистрации удаленных серверов с помощью утилиты Enterprise Manager, мастера Register Server Wizard, а также команд Transact-SQL и

Запуск, остановка и приостановка служб сервера
  Цель работы– приобретение навыков управления основной службой MSSQLServer и вспомогательными службами сервера MS SQL Server 2000: задание режима автоматического зап

Публикация данных с помощью HTML-страниц в системе SQL Server 2000
  Цель работы– ознакомление с основными концепциями и технологиями, лежащими в основе функционирования сервера, и реализующими и их компонентами: средствами администр

Имя виртуального каталога
В поле Local Path указать путь к создаваемому каталогу. 5 Выбрать вкладку Security для управления параметрами подключения к серверу MS SQL Server 2000 Web-сервера, который подключается к б

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги