【发布时间】:2020-04-20 19:32:29
【问题描述】:
我之前问过一个关于在 SQL Server 中缩短表名的问题,偶然发现了这篇文章:https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2012/dn148262(v=msdn.10),它建议使用完全范围的表名,例如 [dbo].[Title] 而不是 Title。
使用全域表名的原因是什么?我从来没有遇到过在数据库中有多个相同表名的地方(实际上我什至不认为这是可能的?),所以对我来说这似乎是不必要的,但我对 SQL Server 很陌生,所以想知道为什么这是首选方式。
【问题讨论】:
-
如果你有
dbo.Title和MySchema.Title怎么办?如果你只写Title,你指的是哪一个? -
@Sami SQL 服务器在数据库连接中有多个方案吗?如果是这样,有什么好的参考链接可以查看它的结构(我主要将 MySQL 用于数据库)。
-
它在您提供的文档中:“对于临时查询和准备好的语句,如果需要进行对象名称解析,则不会发生查询重用。包含在存储过程、函数和触发器没有这个限制。但是,通常应该注意的是,使用两部分对象名称(即 schema.object)为计划重用提供了更多机会,应予以鼓励。"
-
@David542 SQL Server 允许您创建多个方案,在这种情况下,它通常会使用默认方案
dbo。 here is a simple example。你总能看到docs online -
@Sami 这里是关于数据库的内容:
A database in SQL Server is made up of a collection of tables that stores a specific set of structured data. A table contains a collection of rows, also referred to as records or tuples, and columns, also referred to as attributes. Each column in the table is designed to store a certain type of information, for example, dates, names, dollar amounts, and numbers.。那么模式在哪里发挥作用呢? docs.microsoft.com/en-us/sql/relational-databases/databases/…
标签: sql sql-server tsql database-schema