104
Последующие символы в идентификаторе могут быть: символами, определяемыми стандартом Unicode Standard 2.0; десятичными цифрами; символами @, $, #. Нельзя использовать внутри идентификаторов специальные символы: ~ ! % ^ & - ( ) { } '' . \ пробел При выборе имени нужно убедиться, что оно не является зарезервированным словом, и что еще не существует объекта с таким именем (без учета регистра).
105
Для обхода указанных ограничений можно заключать имена объектов в двойные кавычки или квадратные скобки, т.е. использовать ограниченные идентификаторы.
Каждый объект SQL Server создается определенным пользователем и принадлежит определенной БД, расположенной на конкретном сервере. Из имени объекта, владельца объекта, БД и сервера создается полное имя объекта, имеющее общий вид: [[[server.][database].]owner_name].]object_name При обращении к объекту обязательно указывать только имя самого объекта. Указание остальных частей зависит от конкретной ситуации.
107
Возможны следующие варианты обращения к объектам БД:
server.database.owner_name.object_name server.database..object_name server..owner_name.object_name server...object_name database.owner_name.object_name database..object_name owner_name.object_name object_name
108
Для ссылки на конкретный столбец таблицы или представления нужно указать в полном имени объекта пятый элемент – идентификатор столбца:
[[[server.][database]].[owner_name].] object_name.colum_name
Каждый объект SQL Server должен иметь уникальное полностью определенное имя. Например, в одной БД могут быть две таблицы с одинаковыми именами, но разными владельцами. Идентификаторы столбцов должны быть уникальны в пределах таблицы или представления. Для большинства ссылок на объекты характерны названия из трех частей с указанием имени текущего сервера.
109
Названия из четырех частей чаще всего используются для распределенных запросов или удаленных хранимых процедур. Такие идентификаторы записываются по формату:
linkedserver.catalog.schema.object_name
где linkedserver, catalog, schema – соответственно имена сервера, каталога, схемы, содержащих объект, упомянутый в распределенном запросе; object_name – имя объекта или таблицы. Формат имени хранимой процедуры удаленного сервера следующий:
server.database.owner_name.procedure
110
При создании объекта можно не указывать следующие части его имени: server – умолчание для локального сервера; database - умолчание для текущей БД; owner_name - умолчание для имени пользователя в указанной БД, связанной с идентификатором учетной записи текущего соединения.
111
Например, если пользователь зарегистрирован в БД Northwind как владелец (dbo), то создать таблицу с именем TableX можно одной из следующих двух команд:
CREATE TABLE TableX (col_1 INT PRIMARY KEY, col_2 NCHAR(3))
CREATE TABLE Northwind.dbo.TableX (col_1 INT PRIMARY KEY, col_2 NCHAR(3))
112
При выполнении запросов, работающих с множеством объектов, рекомендуется указывать полные имена объектов. При работе с одним, двумя объектами обычно указывают только имена самого объекта и столбцов.
113
При обращении к объекту SQL Server использует для идентификации объектов следующие значения по умолчанию:
server - значение по умолчанию для локального сервера;
database - значение по умолчанию для текущей БД; owner_name - если имя владельца не указано явно, то сервер предполагает, что объект принадлежит текущему пользователю.
Если такого объекта не найдено, то предполагается, что данный объект принадлежит владельцу БД (dbo). Если же и такой объект не будет найден, то появится сообщение об ошибке и поиск прекратится.
114
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.