Мы создаем сценарии для непрерывного обновления наших облачных сред и используем CREATE OR ALTER
операторы для наших процедур, триггеров, представлений и функций.
Существует разрыв между
DROP <OBJECT_CLASS> IF EXISTS <theThing>
GO
и возможное значение
CREATE <OBJECT_CLASS> <theNewThing>
GO
, которое будет означать, что клиенты не найдут объект, а в случае триггеров приложение может даже не обнаружить ошибку.Я надеюсь, что
CREATE OR ALTER <OBJECT_CLASS> <theOldOrNewThing>
, возможно, может дать средство для выполнения этой, в противном случае, нетранзакционной операции в середине транзакций, возможно, заблокировав все новые транзакции до тех пор, пока это не будет сделано (не будет ли этоидеально!).
Какой риск или реальный опыт вы видите?
Есть ли у кого-нибудь авторитетное техническое понимание того, как SQL Server (2016 SP1 +) будет реагировать на CREATE OR ALTER
оператор на работающей базе данных?