Использование идентификаторов в качестве имен объектов
Полное имя объекта состоит из четырех идентификаторов: имени сервера, имени базы данных, имени схемы и имени объекта, которые отображаются в следующем формате:
[ [ [ server. ] [ database ] . ] [ schema_name ] . ] object_name
Имена сервера, базы данных и владельца называются квалификаторами имени объекта. Ссылаясь на объект, нет необходимости указывать сервер, базу данных и владельца. Квалификаторы могут быть опущены, отмечая их позиции точками. Далее перечислены допустимые форматы имен объектов:
- server.database.schema_name.object_name
- server.database..object_name
- server..schema_name.object_name
- server...object_name
- database.schema_name.object_name
- database..object_name
- schema_name.object_name
- object_name
Имя объекта, включающее все четыре части, называется полным именем. Каждый объект, создаваемый в Microsoft SQL Server 2005, должен иметь уникальное полное имя. Например, в одной и той же базе данных может содержаться две таблицы с именем xyz, если они имеют различных владельцев.
Большинство ссылок на объекты используют трехсоставные имена. По умолчанию используется локальный сервер. Четырехсоставные имена обычно используются в распределенных запросах и удаленных вызовах хранимых процедур. Они используют следующий формат:
linkedserver.catalog.schema.object_name
В следующей таблице приведены части имени и их описания.
Часть имени | Описание |
---|---|
linkedserver |
Имя связанного сервера, содержащего объект, на который ссылается распределенный запрос. |
catalog |
Имя каталога, содержащего объект, на который ссылается распределенный запрос. |
schema |
Имя схемы, содержащей объект, на который ссылается распределенный запрос. |
object_name |
Имя объекта или имя таблицы. |
В распределенных запросах имя сервера в четырехсоставном имени соответствует связанному серверу. Связанный сервер — это имя сервера, которое определяется с помощью хранимой процедуры sp_addlinkedserver. Связанный сервер определяет поставщика OLE DB и источник данных OLE DB, который может возвратить набор записей, которые Microsoft SQL Server 2005 может использовать как часть инструкции Transact-SQL.
Чтобы определить, какие компоненты источника данных OLE DB используются для имени каталога и имени схемы в полном имени, см. документацию к поставщику OLE DB, указанную для связанного сервера. Если на связанном сервере запущен экземпляр SQL Server, то именем каталога является база данных, содержащая объект, а именем схемы — владелец объекта. Дополнительные сведения о четырехсоставных именах и распределенных запросах см. в разделе Распределенные запросы.
В удаленных вызовах процедур имя сервера в четырехсоставном имени указывает на удаленный сервер. Удаленный сервер, заданный с помощью хранимой процедуры sp_addserver, является экземпляром SQL Server, доступ к которому осуществляется через локальный сервер. Выполняйте хранимые процедуры на удаленном сервере, используя следующий формат имени процедуры:
server.database.schema_name.procedure
Для удаленной хранимой процедуры требуются все четыре части имени. Дополнительные сведения об удаленных серверах см. в разделе Настройка удаленных серверов.
Ссылка на столбцы с использованием идентификаторов
Имена столбцов должны быть уникальны в пределах таблицы или представления. Можно использовать до трех префиксов для указания столбцов в запросе, обращающемся к таблицам, которые имеют столбцы с одним и тем же именем. Допустим любой из следующих форматов:
database_name.schema_name.object_name.column_name
database_name..object_name.column_name
schema_name.object_name.column_name
object_name.column_name
Обращение к свойствам столбцов определяемых пользователем типов
Свойства столбцов определяемых пользователем типов можно получить, используя точку (.) в качестве разделителя между именем столбца и именем свойства. При обращении к именам свойств можно также обращаться к идентификаторам таблиц или представлений, но не к идентификаторам баз данных или схем. Допустимы следующие форматы:
column_name.property_name1.property_name2…
object_name.column_name.property_name1.property_name2…
См. также
Другие ресурсы
FROM (Transact-SQL)
Синтаксические обозначения в Transact-SQL (Transact-SQL)