В SQL Server есть как детерминированные, так и недетерминированные функции. Детерминированной считается функция, которая возвращает одинаковые результаты, если ее вызывают с одним и тем же набором входных параметров. Недетерминированной называется функция, если при вызове с одним и тем же набором входных параметров она может возвращать различные результаты.
Язык управления ходом выполнения состоит из специальных слов, которые контролируют ход выполнения операторов Transaet-SQL, блоков операторов и хранимых процедур. Эти слова можно использовать в операторах Transact-SQL, пакетах и хранимых процедурах
Если язык управления ходом выполнения не используются, отдельные операторы Transact-SQL выполняются последовательно, в том порядке, в каком они расположены. Язык управления ходом выполнения допускает объединение связанных операторов Он также позволяет сделать их взаимозависимыми. При этом один оператор языка управления ходом выполнения не может относиться сразу к нескольким пакетам или хранимым процедурам.
В SQL Server 2000 предусмотрено несколько методов исполнения операторов Transact-SQL. Можно исполнить одиночный оператор или несколько операторов в виде пакета (который является группой из одного или нескольких операторов Transact-SQL). Операторы Transact-SQL также можно исполнять в хранимых процедурах и триггерах. На этом занятии вы познакомитесь с различными методиками исполнения операторов, а также узнаете о способах исполнения в зависимости от применяемой методики и об исполнении операторов Transact-SQL с помощью сценариев.
Обработка одиночных операторов является основным способом исполнения операторов SQL в SQL Server 2000. Проще всего обработку оператора проиллюстрировать на примере оператора SELECT.
SELECT относится к непроцедурным операторам — он не определяет конкретных шагов, которые должен выполнить сервер баз данных для выборки запрошенных данных. Другими словами, чтобы определить наиболее эффективный способ извлечения запрошенных данных, сервер баз данных должен проанализировать оператор. Этот процесс называется оптимизацией оператора SELECT, а выполняет его оптимизатор запросов.
Пакет — это набор из одного или нескольких операторов, которые клиент отсылает как единую группу. При компиляции каждого пакета получается один план исполнения. Если пакет состоит из нескольких операторов SQL, то из всех оптимизированных шагов, необходимых для исполнения каждого оператора, формируется единый план исполнения. Для того чтобы задать пакет, имеется несколько способов.