Sql Schema Compare не будет обновляться после установки объекта CLR «Обнаружен дрейф исходной схемы»

После установки пользовательского объекта CLR Инструменты разработчика Sql Server (SSDT) ​​VS2012 не разрешают обновление. Ошибка: «Обнаружен дрейф исходной схемы. Нажмите «Сравнить», чтобы обновить. После обновления происходит то же самое.

Пробовал В настройках я установил объект только как хранимые процедуры. Настройки -> Общие -> Блокировать возможную потерю данных -> пробовал и вкл и выкл.


person Eric Rohlfs    schedule 08.02.2013    source источник


Ответы (4)


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

person Mitch    schedule 14.01.2015
comment
Спасибо, в моем случае VS неоднократно жаловался на дрейф исходной схемы, и все же я не менял ее во время обновления схемы - причиной была пара проблем в проекте SSDT (отсутствие операторов GO между CREATE INDEX) - person steve; 20.11.2015
comment
Спасибо! Все, что я пытался сделать, это отредактировать индекс в таблице. Оказывается, у меня был незавершенный процесс в решении, о котором я забыл, и это приводило к сбою сборки проекта. - person David Gunderson; 17.10.2016

Это не ответ, а ключ к решению этой проблемы.

Я должен был обновить столбец с varchar[200] на varchar[MAX] и тоже столкнулся с этой проблемой. Итак, я зашел на сервер и попытался обновить базу данных вручную через SQL Management Studio, которая была там установлена, и я получил эту ошибку:

"Saving changes is not permitted. The changes you have made require the folloing tables to be drpped and re-created. You have either made changes to a table that can't be re-created or enable the option Prevent saving changes that require the table to be re-created."

Кажется, что повторное создание таблицы настолько опасно, что «блокировать/разблокировать при возможной потере данных» не может справиться. Поэтому я думаю, что только если мы сможем обойти это ЛОКАЛЬНОЕ предупреждение, мы сможем обновить базу данных УДАЛЕННО.

Но почему от [200] до [max] приводит к повторному созданию таблицы? Это не имеет никакого смысла. Я пробовал от [200] до [1000], и это тоже не сработало. Это может быть ключом к этой проблеме.

И если вы сделаете то же самое обновление в проводнике сервера в VS, а не в SQL Management Studio, оно сработает. Опять же, почему?

person cheny    schedule 26.11.2013
comment
К сожалению, мы прибегли к удалению таблиц, чтобы обойти эту проблему. - person Eric Rohlfs; 10.01.2014

Это может произойти, когда пользователь БД "меняется".

На следующей довольно пугающей странице форума рассказывается о проблемах, когда иностранные хакеры пытались взломать доступ к пользователю «sa» db, при каждой попытке меняя отметку даты и времени пользователя sa (что рассматривается как дрейф схемы):

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/5c22a7b4-7a82-4717-a118-2475bc62705b/schema-compareupdate-error-target-schema-drift-detected?forum=ssdt

Здесь также упоминается, что вы можете несколько раз запросить пользователя sa, чтобы узнать, происходит ли это с вами:

SELECT * FROM sys.server_principals WHERE principal_id=1

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

Изменить. Я включил ведение журнала в брандмауэре Windows через properties > logging, и мы установили правило блокировки для порта 3071, через который проходил много необъяснимого трафика. Потом проблема ушла.

person Protector one    schedule 26.02.2018
comment
Я знаю, что прошел год, но ты нашел что-нибудь? Со мной тоже происходит - person Drammy; 31.10.2019
comment
Спасибо за напоминание! Я обновил свой ответ решением, которое исправило его для меня. - person Protector one; 01.11.2019
comment
Интересно, у меня была такая же проблема, но я просто отключил учетную запись sa. Это просто домашний сервер разработки, на котором нет ничего существенного, но мне все равно не нравится мысль о том, что кто-то пытается проникнуть в коробку. - person Drammy; 01.11.2019
comment
У нас тоже была эта проблема, поскольку неудачный вход в систему полезен, см. Средство просмотра событий Windows --› mssqltips.com/sqlservertip/1735/ - person Dani; 05.12.2019

Пробовал запускать VS от имени администратора, все работает.

person Eugene Honor    schedule 01.05.2017