2013-06-06 2 views
18

До сегодняшнего дня мне удалось использовать функцию сравнения схем в Visual Studio 2012 для обновления базы данных из проекта базы данных. Но теперь, для одного проекта, я могу выполнить сравнение, но кнопка обновления неактивна.Не удается обновить с помощью схемы.

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

Использование публикации все еще работает. Также обновление проекта из базы данных работает, а не наоборот.

Кто-нибудь знает, почему я не смог бы обновить базу данных через Schema Compare?

+1

Возможный дубликат [Обновить целевую кнопку отключен после сравнения схемы] (http://stackoverflow.com/questions/17742638/update-target-button-is-disabled-after-schema-comparison) –

+0

Это был ответ для меня: http://stackoverflow.com/a/32912849/441862 –

ответ

32

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

+2

Это, скорее всего, случай, если кнопка «Обновить» недоступна. Я разрешил ошибки, и кнопка снова появилась. Благодаря! – maulik13

+1

Вы, сэр, заслуживаете печенья. Это не всегда видно (так как иногда окно списка ошибок скрыто другим окном/вкладкой), просто перейдите и проверьте его. Я хочу, чтобы VS предупредил пользователя об этом, хотя ... – tfrascaroli

1

Идти в эту же проблему сам. Как уже упоминалось выше, в обычном списке ошибок Visual Studio будут перечислены ошибки, блокирующие обновление ... но, кроме того, также будут предупреждения. Один из параметров, который включен по умолчанию, заключается в том, что потеря данных блокирует обновление. Это проблема. Несмотря на то, что это только условие предупреждения, любая возможная потеря данных является функциональной ошибкой, если вы не измените этот флаг.

imho, это довольно серьезный отказ пользовательского интерфейса от MS, но что вы собираетесь делать?

0

Необходимо, чтобы все ваши переменные SQLCMD имели значения по умолчанию.

Щелкните правой кнопкой мыши по проекту в обозревателе решений и выберите «Свойства».

На вкладке слева перейдите к переменным SQLCMD и введите значения по умолчанию в предоставленный столбец.

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

1

Что сработало для меня, было в том числе и схема. Я выбрал для включения только определенные таблицы/procs и т. Д. Если схема, содержащая таблицы и процедуры, также не отмечена галочкой, импорт не включает элементы.

+0

Включая какую схему где? – Suncat2000

6

Необходимо проверить пользователей базы данных и схему базы данных. Часто, если пользователи базы данных неправильно реплицируются в DB Project, Schema Compare не работает.

+0

Спасибо. Это сработало для меня. – adam0101

+0

В частности, это может произойти, даже если проект базы данных только что импортирован из базы данных. Кроме того, в моем случае я мог бы нажать обновление, он просто ничего не сделал. В VS 2015 и 2017 годах поведение было одинаковым. – John

4

Для меня панель отображения ошибок и область вывода ничего не показывали в Visual Studio 2015. Только после создания проекта базы данных, на который я нацеливался, я мог видеть ошибки в области вывода (но все же не в панель списка ошибок). После исправления этих ошибок кнопка «Обновить» больше не была выделена серым цветом.