实例解析:如何使用标识符作为对象名称
一个对象的完整名称包括四个标识符:服务器名称、数据库名称、所有者名称和对象名称。其格式如下:
[ server. ] [ database ] .] [ owner_name ].] object_name
服务器、数据库和所有者的名称即所谓的对象名称限定符。当引用一个对象时,不需要指定服务器、数据库和所有者。可以利用句号标出它们的位置,从而省略限定符。对象名的有效格式是:
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
指定了所有四个部分的对象名称被称为完全合法名称。Microsoft® SQL Server™ 中所创建的每一个对象必须具有唯一的完全合法名称。例如,假如所有者不同,在同一个数据库中可以有两个名为 xyz 的表。
同一个表或视图中的列名必须唯一。假设 customer 数据库中的一个表和一个视图具有相同的名为 telephone的列。若要在 employees 表中引用 telephone 列,请指定 customer..employees.telephone;若要在 mktg_view 视图(市场部的视图)中引用 telephone 列,请指定 customer..mktg_view.telephone。
大多数对象引用使用三部分名称并默认使用本地服务器。四部分名称通常用于分布式查询或远程存储过程调用,其格式为:
linkedserver.catalog.schema.object_name
下表给出各部分的名称以及对它们的描述。
名称的各部分 描述
linkedserver 包含分布式查询所引用对象的链接服务器名。
catalog 包含分布式查询所引用对象的目录名。
schema 包含分布式查询所引用对象的架构名。
object_name 对象名或表名。
对于分布式查询,四部分名称的服务器部分是指链接服务器。链接服务器是指由 sp_addlinkedserver 所定义的服务器名称。链接服务器指定一个 OLE DB 提供程序和一个 OLE DB 数据源,数据源返回一个记录集,SQL Server 把它作为 Transact-SQL 语句的一部分来使用。
请查阅有关为链接服务器指定的 OLE DB 提供程序的文档,确定 OLE DB 数据源的哪些组件可以用于目录和架构部分的名称。假如链接服务器正在运行 SQL Server 实例,则目录名是包含对象的数据库,架构是对象的所有者。
对于远程过程调用,四部分名称中的服务器部分是指一个远程服务器。使用 sp_addserver 指定的远程服务器是通过本地服务器访问的 SQL Server 实例。利用以下格式的过程名执行远程服务器上的存储过程:
server.database.owner_name.procedure
注释:当使用远程存储过程时,要求对象名称包含所有四部分。











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面