2011-11-11 90 views
4

我們有許多索引視圖,這當然需要SCHEMABINDING。支持這些視圖的基表涉及複製。我們的DBA最近不得不重新創建複製,並表示所有這些索引視圖都給他帶來了悲傷,因爲他無法刪除基表並重新創建它們,我猜這就是複製所做的。帶SCHEMABINDING的索引視圖

他告訴我,在每個索引視圖中,他評論了'SCHEMABINDING'並保存了視圖定義。當他這樣做時,每個視圖的相關索引發生了什麼變化?它被刪除了嗎?我是否必須返回到每個視圖,包括SCHEMABINDING命令,然後重新創建每個關聯的索引?

回答

8

在沒有模式綁定的情況下,您不能在視圖上創建索引,所以是索引已被刪除,您必須添加模式綁定並重新創建索引。 http://msdn.microsoft.com/en-us/library/aa933148%28v=sql.80%29.aspx

編輯:@RedFilter,我只是做了一個測試,並且您是否通過更改視圖或刪除並刪除並重新創建它刪除架構綁定,索引被刪除。

0

是的,您需要返回到每個視圖,包括SCHEMABINDING命令,然後重新創建每個關聯的索引。

IIRC,索引仍然存在但未被使用。所以你可以右鍵單擊它們來生成DDL來改變索引,並執行它。這可以通過腳本輕鬆實現自動化。