SQL点表示法

use*_*837 14 sql t-sql sql-server syntax

有人可以向我解释一下SQL Server如何使用点表示法来识别
表的位置?我一直认为位置是Database.dbo.Table
但我看到的代码有其他代替的dbo东西,例如:
DBName.something.Table 有人可以解释一下吗?

Szy*_*mon 29

这是一个数据库架构.表的完整三部分名称是:

databasename.schemaname.tablename
Run Code Online (Sandbox Code Playgroud)

对于用户的默认架构,您还可以省略架构名称:

databasename..tablename
Run Code Online (Sandbox Code Playgroud)

您还可以指定链接的服务器名称:

servername.databasename.schemaname.tablename
Run Code Online (Sandbox Code Playgroud)

您可以在MSDN上阅读有关将标识符用作表名的更多信息:

服务器,数据库和所有者名称称为对象名称的限定符.引用对象时,不必指定服务器,数据库和所有者.可以通过用句点标记其位置来省略限定符.对象名称的有效形式包括以下内容:

server_name.database_name.schema_name.object_name

server_name.database_name..object_name

server_name..schema_name.object_name

服务器名称... OBJECT_NAME

database_name.schema_name.object_name

database_name..object_name

schema_name.object_name

OBJECT_NAME

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

大多数对象引用使用三部分名称.默认server_name是本地服务器.默认的database_name是连接的当前数据库.默认schema_name是提交语句的用户的默认架构.除非另行配置,否则新用户的默认架构是dbo架构.