2010-07-20 126 views
0

我偶然發現了SQL Server 2005中的一些奇怪的T-SQL代碼,我試圖瞭解它是如何工作的。SQL Server dbo和架構

如果在兩個單獨的模式中有兩個名爲tblScenario的表,其中一個在Cache架構中,另一個在Dimension架構中。

當我們查詢SELECT * FROM dbo.tblScenario時,我們會發現什麼? dbo如何以可靠和可預測的方式映射到這些模式之一?

由於某種原因,這實際上有效,但我們不知道爲什麼?

我們將解決它,所以它明確調用SELECT * FROM Dimension.tblScenario,但我很好奇。

感謝,

菲利普

+0

我會雖然,這是行不通的, dbo是一個模式,但它也是一個用戶。難道dbo用戶擁有它選擇的模式? - 編輯我剛剛測試過(在SQL 2008中),我得到了'無效的對象名'錯誤。 – 2010-07-20 15:36:12

回答

0

如果您運行的是舊版本的尺寸架構查詢我希望它從尺寸模式返回數據,如果您是在緩存模式運行它我希望它從Cache模式返回數據,如果你從其他模式運行它,我會期望它返回一個錯誤(類似於Chris Diver記錄的錯誤)。

1

OLTP檢查... 1)是DBO.tblScenario的一個視圖?

Othewise,這聽起來像你處理SQL Server分析服務(SSAS),這與尺寸的交易,mimicing表等更多信息:http://technet.microsoft.com/en-us/library/cc966452.aspx

+0

我以爲你可能已經到了那裏,因爲我們沒有檢查意見......唉,它也不是一個觀點。 – Philip 2010-07-23 20:04:12