使用标识符作为对象名称

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

服务器名称**.[数据库名称].[架构名称].**对象名称

| 数据库名称**.[架构名称].**对象名称

| 架构名称**.**对象名称

| 对象名称

服务器、数据库和所有者的名称即所谓的对象名称限定符。引用对象时,不必指定服务器、数据库和所有者。可以用句点标记它们的位置来省略限定符。对象名称的有效格式包括以下几种:

  • 服务器名称**.数据库名称.架构名称.**对象名称

  • 服务器名称**.数据库名称..**对象名称

  • 服务器名称**..架构名称.**对象名称

  • 服务器名称**...**对象名称

  • 数据库名称**.架构名称.**对象名称

  • 数据库名称**..**对象名称

  • 架构名称**.**对象名称

  • 对象名称

指定了所有四个部分的对象名称称为完全限定名称。在 Microsoft SQL Server 中创建的每个对象必须具有唯一的完全限定名称。例如,如果所有者不同,同一个数据库中可以有两个名为 xyz 的表。

大多数对象引用使用由三个部分组成的名称。默认服务器名称为本地服务器。默认数据库名称为连接的当前数据库。默认架构名称为提交该语句的用户的默认架构。如果没有进行其他配置,则新用户的默认架构为 dbo 架构。

由四个部分组成的名称通常用于分布式查询或远程存储过程调用。它们使用如下格式:

  • 链接服务器**.目录.架构.**对象名称

下表列出了各部分的名称及其说明。

部分名称

说明

链接服务器

包含分布式查询所引用对象的链接服务器的名称。

目录

包含分布式查询所引用对象的目录的名称。查询 SQL Server 数据库时,目录为数据库名称。

架构

包含分布式查询所引用对象的架构的名称。

对象名称

对象名称或表名称。

对于分布式查询,由四个部分构成的名称的服务器部分是指链接服务器。链接服务器是由 sp_addlinkedserver 定义的服务器名称。链接服务器可标识 OLE DB 访问接口和 OLE DB 数据源,该数据源返回 Microsoft SQL Server 将其作为 Transact-SQL 语句的一部分使用的记录集。

若要确定包含 OLE DB 数据源的组件中哪些可以用于名称的目录和架构部分,请参阅为链接服务器指定的 OLE DB 访问接口的文档。如果链接服务器正在运行 SQL Server 实例,则目录名称是包含该对象的数据库的名称,架构名称是该对象所有者的名称。有关由四个部分构成的名称和分布式查询的详细信息,请参阅分布式查询

对于远程过程调用,由四个部分构成的名称的服务器部分是指远程服务器。用 sp_addserver 指定的远程服务器是 SQL Server 实例,该实例可通过本地服务器访问。可以使用以下格式的过程名称在远程服务器上执行存储过程:

  • 服务器**.数据库.架构名称.**过程

使用远程存储过程时,对象名称需要包含所有四个部分。有关远程服务器的详细信息,请参阅配置远程服务器

使用标识符引用列

同一个表或视图内的列名称必须唯一。最多可以使用三个前缀来指定查询中的列,查询中引用的多个表可以具有同名称的列。可以使用下列格式之一:

  • 数据库名称**.架构名称.对象名称.**列名

  • 数据库名称**..**对象名称.列名

  • 架构名称.对象名称**.**列名

  • 对象名称**.**列名

引用用户定义类型的列的列属性

用户定义类型的列的属性通过在列名和属性名称之间使用句点分隔符 (.) 来引用。引用属性名称时,还可以引用表或视图标识符,但不能引用数据库或架构标识符。可以使用下列格式:

  • 列名**.属性名称 1.**属性名称 2[…]

  • 对象名称**.列名.属性名称 1.**属性名称 2[…]