【问题标题】:SQL Server dbo and schemaSQL Server dbo 和架构
【发布时间】:2010-07-22 03:29:39
【问题描述】:

我在 SQL Server 2005 中偶然发现了一些奇怪的 T-SQL 代码,我试图了解它是如何工作的。

如果在两个单独的架构中有两个名为 tblScenario 的表,一个在 Cache 架构中,另一个在 Dimension 架构中。

当我们查询 SELECT * FROM dbo.tblScenario 时,我们期望找到什么? dbo 如何以可靠且可预测的方式映射到这些架构之一?

出于某种原因,这确实有效,但我们不知道为什么?

我们将修复它,使其显式调用 SELECT * FROM Dimension.tblScenario,但我很好奇。

谢谢,

菲利普

【问题讨论】:

  • 我会认为它不起作用,dbo 是一个模式,但它也是一个用户。 dbo 用户是否拥有它选择的架构? - 编辑我刚刚测试过这个(在 SQL 2008 中),我得到了一个“无效的对象名称”错误。

标签: sql-server tsql


【解决方案1】:

OLTP 检查... 1) DBO.tblScenario 是视图吗?

否则,听起来您正在处理 SQL Server Analysis Services (SSAS),它处理维度、模拟表等。更多信息:http://technet.microsoft.com/en-us/library/cc966452.aspx

【讨论】:

  • 我以为您可能在那儿看到了什么,因为我们没有检查视图……唉,它也不是视图。
【解决方案2】:

如果您在维度架构中运行旧版本的查询,我希望它从维度架构返回数据,如果您在缓存架构中运行它,我希望它从缓存架构返回数据,如果您从任何其他模式运行它,我希望它会返回错误(类似于 Chris Diver 记录的错误)。

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2023-03-27
    • 2011-02-02
    • 1970-01-01
    • 2011-07-07
    • 2020-02-15
    • 2017-07-14
    • 2017-10-18
    相关资源
    最近更新 更多