lu.[TableName] 而不是 dbo.[TableName]?

Posted

技术标签:

【中文标题】lu.[TableName] 而不是 dbo.[TableName]?【英文标题】:lu.[TableName] instead of dbo.[TableName]? 【发布时间】:2010-11-22 18:47:36 【问题描述】:

我的 SQL Server 2005 数据库中的某些表被命名为 lu.[TableName] 而不是 dbo.[TableName]。卢代表什么?

注意:我已经尝试过 google

【问题讨论】:

【参考方案1】:

这将是 SQL Server 2005 中的架构 - 您可以使用 CREATE SCHEMA 自行创建。

模式可用于分离逻辑上属于一起的数据库对象,例如将所有与人力资源相关的表放入“HR”模式等。DB 模式有点像 .NET 或 XML 命名空间。

架构也可用于处理权限,例如您可以在架构级别将权限委派给用户和角色。

查看广泛使用模式的示例 AdventureWorks 数据库。

这也是您应该始终使用“dbo”来限定数据库对象的原因之一。字首。如果您不这样做,SQL Server 的查询引擎将首先必须检查您的默认架构(可能与 dbo 不同)以查找该名称的对象,如果未找到,它将转到 dbo 架构。如果您始终使用“dbo.YourTableName”,则查询引擎会预先知道在哪里查找 - 性能提升很小(乘以数千次访问)。

【讨论】:

【参考方案2】:

“lu”是lookup table的缩写

【讨论】:

+1 用于实际回答“'lu' 代表什么?”这个问题。【参考方案3】:

lu 是一个单独的模式(dbo 是默认值)

有关架构的更多信息,这看起来很有帮助:What good are SQL Server schemas?

【讨论】:

【参考方案4】:

SQL 服务器允许 multiple schemas - dbo,这是默认值 - 您的数据库具有 lu 的辅助(可能更多)架构

【讨论】:

【参考方案5】:

lu 是架构名称。

dbo 代表数据库所有者。 lu 可能是创建其他表的用户帐户

【讨论】:

以上是关于lu.[TableName] 而不是 dbo.[TableName]?的主要内容,如果未能解决你的问题,请参考以下文章

表 'DBNAME.dbo.TableNAME' 不存在 MySQL 的实体框架 6

SQLSERVER错误-Invalid object name ‘dbo.tablename’. (Microsoft SQL Server, Error: 208)

T-SQL 删除所有表

如何修复熊猫列名以仅显示列名而不是 tablename.columnname

如何检查 SQL Server 2005 中是不是存在非聚集索引

如何判断矩阵是不是能够进行LU分解