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)
如何修复熊猫列名以仅显示列名而不是 tablename.columnname