2009-08-12 55 views
3

我試圖在我的VIEW視圖上設置索引。 第一個錯誤是1939,需要架構綁定。已加入數據庫的SQL Server索引視圖語法

好的,沒有問題。現在

ALTER VIEW xyz WITH SCHEMABINDING AS abc 

,在該視圖中我使用一個本地表 [DBO] [ReleantTable]和兩個連接表 從其他數據庫在同一臺服務器上。

OtherDbName..OtherRelevantTable

更改VIEW失敗,說明OtherDbName..OtherRelevantTable 對模式綁定無效。

我想這只是一個語法問題。任何人都可以讓我暗示 如何解決我的OtherDb?

回答

4

爲了創建索引視圖,基表必須駐留在同一個數據庫中。

瞭解更多詳情請諮詢下面的Microsoft聯機叢書參考:

http://msdn.microsoft.com/en-us/library/ms191432(SQL.90).aspx

+0

THX的答案。實際上,爲了性能原因,我需要使用該索引。有沒有什麼辦法可以從其他「地方」收集數據,從而獲得該視圖索引的單個字段? – KB22 2009-08-12 10:43:34

+2

@ KB22:要回答您的進一步查詢,不幸的是答案是否定的。您看到爲了在視圖上創建一個非聚集索引,首先必須創建一個聚簇索引。爲了做到這一點,SQL Server必須物理實現來自視圖的表數據,並且這樣做必須驗證視圖的全部內容。當視圖包含分佈在不同數據庫中的基表時,無法執行此操作。 – 2009-08-12 10:59:08

+1

除了我以前的評論,我建議一個好的起點是構建滿足您的選擇要求的交叉數據庫查詢,然後檢查執行計劃。確保所有的連接謂詞和搜索參數都有合適的索引。 – 2009-08-12 10:59:57