Основы языка Transact-SQL. Основные элементы Transact-SQL. Типы данных MS SQL Server. Выражения Transact-SQL, страница 6

85

Пример использования операторов сравнения

(предполагается, что текущая дата (число месяца), возвращаемая функцией GETDATE(), больше 15).

86

Логические операторы – возвращают значения TRUE или FALSE, используются в различных конструкциях, включая запросы.

87

88

89

Битовые операторы – выполняют побитовые операции над значениями числового типа. Имеется 3 битовых оператора: битовый AND (&), битовый OR ( | ), битовый исключающий OR, или XOR (^). Примеры

90

Специальные знаки и простейшие операторы в Transact-SQL иллюстрирует таблица:

91

92

93

6. Идентификаторы Transact-SQL

Все объекты SQL Server имеют имена - идентификаторы, которые создаются при определении объектов и используются для ссылок на эти объекты. Для многих объектов БД использование идентификаторов является обязательным, а для некоторых (например, ограничений целостности) - нет.

94

Например, следующая команда создает таблицу с идентификатором Города, состоящую из двух столбцов с идентификаторами КодГорода и НазваниеГорода: CREATE TABLE Города (КодГорода INT PRIMARY KEY, НазваниеГорода NVARCHAR(30))

При создании таблицы Города было создано ограничение целостности PRIMARY KEY, которому явно не было присвоено никакого имени. Но на системном уровне каждый объект БД должен иметь свое уникальное имя, поэтому сервер автоматически сгенерирует в данном случае имя для ограничения целостности, например, PK__Города__014543FA.

96

6.1. Типы идентификаторов Существует два типа идентификаторов. Стандартные идентификаторы – при их определении используются все правила создания идентификаторов. Ограниченные идентификаторы – при их определении не соблюдались какие-либо правила создания идентификаторов. Такие идентификаторы заключаются в ограничители: квадратные скобки [ ] или двойные кавычки '' ''.

97

Например, SELECT * FROM [My Table] /* В этот идентификатор входит пробел и зарезервированное слово Table */ WHERE [order]>1000 /* Этот идентификатор представляет собой зарезервированное слово order */

98

Ограниченный идентификатор может состоять из любой комбинации символов текущей кодовой страницы, кроме символов, используемых в качестве ограничителей. Cтандартные и ограниченные идентификаторы должны содержать от 1 до 128 символов (для временных таблиц - до 116 символов).

99

Набор правил по использованию ограничителей (двойных и одинарных кавычек для символьных строк, квадратных скобок) определяется параметром QUOTED_IDENTIFIER. SQL Server обеспечивает несколько способов установки данного параметра, в частности, с помощью команды: SET QUOTED_IDENTIFIER {ON | OFF}

100

  • Когда параметр QUOTED_IDENTIFIER установлен в ON - SQL Server подчиняется правилам стандарта SQL-92 по использованию ограничителей в командах:
    • Двойные кавычки допустимы только для ограничения идентификаторов, но не могут использоваться для ограничения символьных строк.
    • Символьные строки должны заключаться в одинарные кавычки. Для ограничения идентификаторов одинарные кавычки использовать нельзя.

Когда параметр QUOTED_IDENTIFIER установлен в OFF - SQL Server подчиняется следующим правилам использования ограничителей:

  • Для ограничения идентификаторов кавычки недопустимы. Вместо этого в качестве ограничителей используются квадратные скобки.
  • Для ограничения символьных строк допустимы как двойные, так и одинарные кавычки. Допускается использование одинарной кавычки внутри символьной строки, ограниченной двойными кавычками.

102

Таким образом, имеется два способа применения двойных кавычек: - в качестве ограничителя имени объекта (QUOTED_IDENTIFIER установлен в ON); - в качестве ограничителя текстовой строки (QUOTED_IDENTIFIER установлен в OFF).

(!) Квадратные скобки как ограничители идентификаторов могут использоваться всегда, независимо от значения параметра QUOTED_IDENTIFIER.

103

6.2. Правила определения стандартных идентификаторов