Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






Хранимые процедуры в среде MS SQL Server



Строковые функции

Краткий обзор строковых функций представлен в таблице.

Таблица 11.2.
ASCII возвращает код ASCII левого символа строки
CHAR по коду ASCII возвращает символ
CHARINDEX определяет порядковый номер символа, с которого начинается вхождение подстроки в строку
DIFFERENCE возвращает показатель совпадения строк
LEFT возвращает указанное число символов с начала строки
LEN возвращает длину строки
LOWER переводит все символы строки в нижний регистр
LTRIM удаляет пробелы в начале строки
NCHAR возвращает по коду символ Unicode
PATINDEX выполняет поиск подстроки в строке по указанному шаблону
REPLACE заменяет вхождения подстроки на указанное значение
QUOTENAME конвертирует строку в формат Unicode
REPLICATE выполняет тиражирование строки определенное число раз
REVERSE возвращает строку, символы которой записаны в обратном порядке
RIGHT возвращает указанное число символов с конца строки
RTRIM удаляет пробелы в конце строки
SOUNDEX возвращает код звучания строки
SPACE возвращает указанное число пробелов
STR выполняет конвертирование значения числового типа в символьный формат
STUFF удаляет указанное число символов, заменяя новой подстрокой
SUBSTRING возвращает для строки подстроку указанной длины с заданного символа
UNICODE возвращает Unicode-код левого символа строки
UPPER переводит все символы строки в верхний регистр
SELECT Фирма, [Фамилия]+"" +Left([Имя],1)+"." +Left([Отчество],1) +"." AS ФИОFROM Клиент

11.5. Использование функции LEFT для получения инициалов клиентов.

Функции для работы с датой и временем

Краткий обзор основных функций для работы с датой и временем представлен в таблице.

Таблица 11.3.
DATEADD добавляет к дате указанное значение дней, месяцев, часов и т.д.
DATEDIFF возвращает разницу между указанными частями двух дат
DATENAME выделяет из даты указанную часть и возвращает ее в символьном формате
DATEPART выделяет из даты указанную часть и возвращает ее в числовом формате
DAY возвращает число из указанной даты
GETDATE возвращает текущее системное время
ISDATE проверяет правильность выражения на соответствие одному из возможных форматов ввода даты
MONTH возвращает значение месяца из указанной даты
YEAR возвращает значение года из указанной даты
SELECT Year(Дата) AS Год, Month(Дата) AS Месяц, Sum(Количество) AS Общ_КоличествоFROM СделкаGROUP BY Year(Дата), Month(Дата)

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



DECLARE @d DATETIMEDECLARE @y INTSET @d=’29.10.03’SET @y=DATEPART(yy,@d)SELECT @y

11.7. Пример выделения из даты значения года.

Понятие хранимой процедуры

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

· необходимые операторы уже содержатся в базе данных;

· все они прошли этап синтаксического анализа и находятся в исполняемом формате; перед выполнением хранимой процедурыSQL Server генерирует для нее план исполнения, выполняет ее оптимизацию и компиляцию;

· хранимые процедуры поддерживают модульное программирование, так как позволяют разбивать большие задачи на самостоятельные, более мелкие и удобные в управлении части;

· хранимые процедуры могут вызывать другие хранимые процедуры и функции;

· хранимые процедуры могут быть вызваны из прикладных программ других типов;



· как правило, хранимые процедуры выполняются быстрее, чем последовательность отдельных операторов;

· хранимые процедуры проще использовать: они могут состоять из десятков и сотен команд, но для их запуска достаточно указать всего лишь имя нужной хранимой процедуры. Это позволяет уменьшить размер запроса, посылаемого от клиента на сервер, а значит, и нагрузку на сеть.

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

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

Хранимые процедуры существуют независимо от таблиц или каких-либо других объектов баз данных. Они вызываются клиентской программой, другой хранимой процедурой или триггером. Разработчик может управлять правами доступа к хранимой процедуре, разрешая или запрещая ее выполнение. Изменять код хранимой процедуры разрешается только ее владельцу или члену фиксированной роли базы данных. При необходимости можно передать права владения ею от одного пользователя к другому.

Хранимые процедуры в среде MS SQL Server

При работе с SQL Server пользователи могут создавать собственные процедуры, реализующие те или иные действия. Хранимые процедуры являются полноценными объектами базы данных, а потому каждая из них хранится в конкретной базе данных. Непосредственный вызов хранимой процедуры возможен, только если он осуществляется в контексте той базы данных, где находится процедура.

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

В SQL Server имеется несколько типов хранимых процедур.

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

· Пользовательские хранимые процедуры реализуют те или иные действия. Хранимые процедуры – полноценный объект базы данных. Вследствие этого каждая хранимая процедура располагается в конкретной базе данных, где и выполняется.

· Временные хранимые процедуры существуют лишь некоторое время, после чего автоматически уничтожаются сервером. Они делятся на локальные и глобальные. Локальные временные хранимые процедуры могут быть вызваны только из того соединения, в котором созданы. При создании такой процедуры ей необходимо дать имя, начинающееся с одного символа #. Как и все временные объекты, хранимые процедуры этого типа автоматически удаляются при отключении пользователя, перезапуске или остановке сервера. Глобальные временные хранимые процедуры доступны для любых соединений сервера, на котором имеется такая же процедура. Для ее определения достаточно дать ей имя, начинающееся с символов ##. Удаляются эти процедуры при перезапуске или остановке сервера, а также при закрытии соединения, в контексте которого они были созданы.


Эта страница нарушает авторские права

allrefrs.ru - 2018 год. Все права принадлежат их авторам!