Компоненты языка Transact-SQL
Функции Transact-SQL
Функция очень похожа на операции, но вместо одного символа, соответствующего выполнению одного действия, функция состоит из множества операций. Функция может выполнять одно логическое (logical) действие, но это логическое действие может состоять из любого множества физических действий. Например, функция, перемещающая строку из одной таблицы в другую, выполняет одно логическое действие (перемещение), но при этом два отдельных физических действия ( INSERT и DELETE ).
Нововведением в SQL Server 2000 является возможность создания своих собственных функций, которые называются пользовательскими функциями (user-defined). Их мы рассмотрим в "Пользовательские функции"
Transact-SQL также предоставляет несколько встроенных функций, которые мы и будем рассматривать.
Примечание. В таблицах в этом разделе представлены не все функции. Полный перечень функций доступен в панели Object Browser в папке Common Objects.
Использование функций
Встроенные функции Transact-SQL классифицируются по характеру возвращаемого ими результата: они могут быть либо детерминированными (deterministic), либо недетерминированными (non-deterministic). Детерминированная функция, получая одни и те же значения данных, которыми будет оперировать, всегда будет возвращать одинаковый результат: SQRT(9) всегда возвращает 3, следовательно, функция SQRT детерминированная. Недетерминированная функция, такая как RAND, наоборот, при каждом обращении всегда возвращает различные значения.
В Transact-SQL функции могут использоваться в самых различных случаях. В столбцах со значениями по умолчанию, в вычисляемых столбцах в таблицах или представлениях, в условии отбора в фразе WHERE и т. д. Тем не менее, детерминизм функции определяет, может ли она использоваться в качестве индекса. Индекс всегда должен возвращать согласующиеся результаты, и только детерминированные функции могут использоваться в индексах.
Функции даты и времени
Функции даты и времени принимают в качестве входных значений дату и время и возвращают либо строковые, числовые значения, либо значения в формате даты и времени. (Помните, что в SQL Server, время считается компонентом типа данных datetime). Параметр единицы, фигурирующий во многих функциях, обычно обозначает единицы измерения времени, например такие, как "год" или "минута". В таблице 24.9 представлены функции даты и времени Transact-SQL.
Используйте функции даты
- Для открытия нового окна Query (Запрос), нажмите в панели инструментов анализатора запросов Query Analyzer кнопку New Query (Новый запрос).Query Analyzer откроет пустое окно Query (Запрос).
- В панели инструментов анализатора запросов Query Analyzer нажмите кнопку Load Script (Загрузить сценарий).Query Analyzer отобразит диалоговое окно Open Query File (Открытие файла сценария).
- Выберите файл с именем DateTime и нажмите кнопку Open (Открыть). Query Analyzer загрузит сценарий в окно Query (Запрос).
- Для выполнения запроса в панели инструментов анализатора запросов Query Analyzer нажмите кнопку Execute Query (Выполнить запрос).Query Analyzer отобразит результаты в панели сетки Grids Pane.
- Закройте окно Query (Запрос).