Компоненты языка Transact-SQL
Команды администрирования базы данных
Большинство команд Transact-SQL, поддерживающие администрирование базы данных, доступны интерактивно через средства Enterprise Manager. Собственно команды администрирования позволяют выполнить эти же задачи программно.
Команды администрирования базы данных показаны в таблице 24.3. Команды GRANT, DENY и REVOKE управляют средствами ограничения доступа и защиты базы данных (безопасностью). Команды BACKUP, RESTORE и UPDATE STATISTICS дублируют функциональные возможности планировщика обслуживания в Enterprise Manager.
Команда SET используется совместно с ключевыми словами, например такими, как DATEFORMAT и LANGUAGE, для управления текущим сеансом SQL Server. В Enterprise Manager большинство из этих переменных доступны из диалогового окна свойств базы данных.
Последние две команды администрирования базы данных, KILL и SHUTDOWN, используются для управления работой SQL Server. Команда KILL заканчивает выполнение операций, ассоциированных с соединением с определенным пользователем. Команда SHUTDOWN безусловно завершает работу SQL Server.
Другие команды
Остались нерассмотренными еще три набора команд Transact-SQL. Первый набор команд управляет использованием программных переменных. Мы рассмотрим эти команды в "Программные объекты"
Набор команд управления потоком контролирует выполнением операторов в SQL-сценарии. Команды управления потоком мы рассмотрим в "Управление ходом выполнения" Набор команд для работы с курсорами управляет поведением объекта специального типа – курсора, который указывает на определенную запись в таблице или представлении. Курсоры мы рассмотрим в "Курсоры в Transact-SQL"
Операции Transact-SQL
Операцией (operator) мы будем называть символ, обозначающий действие, которое будет выполнено программой SQL Server. В "Оператор SELECT" уроке мы использовали операцию конкатенации + для создания вычисляемого столбца в операторе SELECT.
Операции Transact-SQL классифицируются по количеству значений, которыми они могут оперировать. Это свойство называется кардинальным числом (cardinality) операции. Операции Transact-SQL по их кардинальному числу различаются на унарные и бинарные.
Большинство операций являются бинарными. Операция называется бинарной, если она оперирует с двумя значениями. Операция + в выражении 4+3, и операция < в выражении MonthSales < MonthBudget являются примерами бинарных операций. Операция является унарной, если она оперирует только с одним значением. В выражении -10 операция (-) является унарным.
Приоритет операций
Когда вы создаете составной оператор Transact-SQL, важно представлять себе порядок, в котором должны выполняться операции – их приоритет (precedence). Определение приоритета часто не представляет проблемы, но иногда незнание приоритета может ввести вас в заблуждение при работе с операциями. Например, 3*(4+1) равно 15, в то время как 3*4+1 равно 13, поскольку операция умножения выполняется первой. Операция умножения имеет наивысший приоритет.
Ниже представлены операторы в порядке их приоритетов. Операции, имеющие одинаковый приоритет, будут выполняться слева на право.
- + (положительное число), - (отрицательное число), и ~ (побитная инверсия NOT)
- *, /, %
- + (сложения), + (конкатенации), - (вычитания)
- = (сравнения), >, <, >=, <=, <>
- ^, &, |
- NOT
- AND
- OR
- = (присваивания)
Вы можете управлять порядком вычисления, используя скобки, как в предыдущем примере.
Как и команды Transact-SQL, операции будет легко изучать, если сгруппировать их по типу выполняемых ими действий.
Операторы комментариев
Transact-SQL поддерживает два специальных оператора, которые не используются для операций вычисления, а предписывают SQL Server игнорировать определенный текст в сценарии. Transact-SQL поддерживает два оператора комментариев. Двойное тире (--) предписывает SQL Server игнорировать всю строку после этого символа. Этот оператор может использоваться в начале строки, в результате чего SQL Server будет игнорировать всю строку, или же он может использоваться внутри строки, в результате чего SQL Server будет игнорировать все, что находится после двойного тире до конца строки.
Другим оператором комментариев являются два оператора, /* и */, которые используются вместе. SQL Server будет игнорировать все, что находится между первым оператором комментария /* и вторым оператором комментария */, причем не важно сколько строк расположено между ними.
На рис. 24.1 показано использование оператора комментариев.