使用标识符作为对象名称

完整的对象名称由四个标识符组成:服务器名称、数据库名称、架构名称和对象名称。其格式如下:

[ [ [ 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)

帮助和信息

获取 SQL Server 2005 帮助