Назад | Перейти на главную страницу

sql server: как загружать битые представления

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

Чтобы протестировать сценарий обновления, я хотел бы установить объекты схемы в пустую тестовую базу данных. Однако многие виды не могут быть загружены, потому что они находятся в неисправном состоянии.

Можно ли заставить SQL Server загружать представления, которые относятся к несуществующим объектам, чтобы я мог проверить свои сценарии восстановления?

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

Вы можете сделать резервную копию и повторно восстановить базу данных с новым именем один раз, удалить данные во всех таблицах, принудительно выполнить повторное индексирование и полное сжатие базы данных, а затем сделать резервную копию результата для восстановления в начале каждого из ваших тестовых запусков.

Это даст вам небольшую базу данных без данных с такой же структурой, включая неработающие представления и процедуры. Вам все равно придется сделать резервную копию и восстановить всю партию, но только один раз, поскольку последующие восстановления будут производиться из стертой и сжатой копии. Операция удаления также займет некоторое время, но снова ее нужно будет выполнить только один раз (переиндексация и сжатие должны быть очень быстрыми).

Не думаю, что ты сможешь это сделать. Почему бы не добавить создание представления в сценарии тестирования? Если весь сценарий выполняется успешно, то изменение схемы решает проблему.

Я думаю, что более ранние версии SQL Server допускали прямую модификацию таблицы syscomments, что, возможно, сработало бы, но не больше.