【发布时间】:2010-11-22 18:47:36
【问题描述】:
我的 SQL Server 2005 数据库中的某些表被命名为 lu.[TableName] 而不是 dbo.[TableName]。卢代表什么?
注意:我已经尝试过 google
【问题讨论】:
标签: sql-server sql-server-2005 dbo
我的 SQL Server 2005 数据库中的某些表被命名为 lu.[TableName] 而不是 dbo.[TableName]。卢代表什么?
注意:我已经尝试过 google
【问题讨论】:
标签: sql-server sql-server-2005 dbo
这将是 SQL Server 2005 中的架构 - 您可以使用 CREATE SCHEMA 自行创建。
模式可用于分离逻辑上属于一起的数据库对象,例如将所有与人力资源相关的表放入“HR”模式等。DB 模式有点像 .NET 或 XML 命名空间。
架构也可用于处理权限,例如您可以在架构级别将权限委派给用户和角色。
查看广泛使用模式的示例 AdventureWorks 数据库。
这也是您应该始终使用“dbo”来限定数据库对象的原因之一。字首。如果您不这样做,SQL Server 的查询引擎将首先必须检查您的默认架构(可能与 dbo 不同)以查找该名称的对象,如果未找到,它将转到 dbo 架构。如果您始终使用“dbo.YourTableName”,则查询引擎会预先知道在哪里查找 - 性能提升很小(乘以数千次访问)。
【讨论】:
“lu”是lookup table的缩写
【讨论】:
lu 是一个单独的模式(dbo 是默认值)
有关架构的更多信息,这看起来很有帮助:What good are SQL Server schemas?
【讨论】:
SQL 服务器允许 multiple schemas - dbo,这是默认值 - 您的数据库具有 lu 的辅助(可能更多)架构
【讨论】:
lu 是架构名称。
dbo 代表数据库所有者。 lu 可能是创建其他表的用户帐户
【讨论】: