Индексированные представления с SCHEMABINDING - PullRequest
4 голосов
/ 11 ноября 2011

У нас есть несколько индексированных представлений, которые, конечно, требуют SCHEMABINDING.Базовые таблицы, поддерживающие эти представления, участвуют в репликации.Недавно нашему администратору БД пришлось заново создать репликацию, и он сказал, что все эти индексированные представления доставляют ему горе, потому что он не может отбросить базовые таблицы и воссоздать их, что, как мне кажется, и делает репликация.

Онсказал мне, что в каждом из проиндексированных представлений он закомментировал «SCHEMABINDING» и сохранил определение представления.Когда он сделал это, что случилось с соответствующим индексом каждого представления?Это было удалено?Должен ли я вернуться к каждому представлению, включить команду SCHEMABINDING и затем заново создать каждый связанный индекс?

Ответы [ 2 ]

8 голосов
/ 11 ноября 2011

Вы не можете иметь индекс для представления без привязки схемы, так что да, индексы были удалены, и вам нужно добавить привязку схемы назад и заново создать индексы. http://msdn.microsoft.com/en-us/library/aa933148%28v=sql.80%29.aspx

РЕДАКТИРОВАТЬ: @RedFilter, я только что сделал тест, и если вы удалите привязку схемы, изменив представление или DROPing и воссоздав его, индексы будут удалены.

0 голосов
/ 11 ноября 2011

Да, вам нужно будет вернуться к каждому представлению, включить команду SCHEMABINDING и затем заново создать каждый связанный индекс.

IIRC, индексы все еще существуют, но не используются. Таким образом, вы можете просто щелкнуть по ним правой кнопкой мыши, чтобы сгенерировать DDL, чтобы изменить индекс, и выполнить это. Это может быть легко написано для автоматизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...