Я взял на себя задачу добавления функции в веб-приложение, и добавленная функция потребовала изменения документа xsd, определяющего схему XML.Я добавил несколько новых необязательных элементов и т. Д.
Новая схема обратно совместима со старой схемой, а это означает, что все, что находится в БД теперь под старой схемой, будет действительным в новой схеме (новые вещиявляются необязательными).
Мы развернули это в некоторых небольших средах с использованием развертывания в стиле DACPAC, и не было никаких проблем.
Теперь мы пытаемся выполнить развертывание на наборе данных типа prodlikeбыть чрезвычайно проблематичным.Dacpac занимает очень много времени.Как дни - мне нужно сократить это до часа или двух.
Кто-нибудь знает, есть ли способ обойти этот тип проблемы?
Если я знаю, что схемысовместимо, есть ли способ просто «сказать» ssms об этом, чтобы он мог редактировать схему, не проверяя все?
Если это не так, есть ли способ преобразовать типизированный столбец XML в нетипизированный столбец XML безмассивная проверка?Чтобы уточнить, я не могу просто сделать это:
Alter Table [Schema].[Table]
alter column [XmlCol] xml
;
, потому что я получаю это:
Msg 5074, Level 16, State 1, Line 4
The object 'DF_Table_XmlCol' is dependent on column 'XmlCol'.
Msg 5074, Level 16, State 1, Line 4
The index 'IX_Table_OtherId_SomeFlag' is dependent on column 'XmlCol'.
Msg 4922, Level 16, State 9, Line 4
ALTER TABLE ALTER COLUMN XmlCol failed because one or more objects access this column.
Мне сказали, что, даже если я ДЕЙСТВИТЕЛЬНО снимаю эти ограничения, SSMS все равно будет приниматьнавсегда изменить типизированный XML на нетипизированный столбец XML ...
Любые другие идеи?
РЕДАКТИРОВАТЬ: кажется, что удаление индекса, превращение типизированного XML в нетипизированный XML, а затем добавлениеИндекс вернулся быстрее, чем ожидалось - это заняло около минуты.Когда DACPAC внес аналогичное изменение, для одного стола потребовалось несколько часов.Я планирую протестировать переход от нетипизированного к типизированному, как только смогу, но мне все еще любопытно, как другие люди справляются с такими проблемами ... кроме того, чтобы не использовать XML в базе данных, что было бы полностьюесли бы это было с нуля.