Схема сравнения SQL Server в Visual Studio 2017
Я пытаюсь сравнить схемы двух баз данных на одном сервере.
Две базы данных названы benchmarkdb
а также benchmarkdb_dev
,
В Visual Studio 2017 я захожу в Инструменты> SQL Server > Новая схема сравнения...
Из обоих выпадающих меню, помеченных "Выбрать источник" и "Выбрать цель" (как показано на рисунке ниже), я хочу выбрать benchmarkdb
как источник и bencmarkdb_dev
как цель.
После щелчка, чтобы выбрать источник, всплывает "Выбор схемы источника", и я нажимаю кнопку "Выбрать соединение...", которая вызвала другое всплывающее окно. В новейшем всплывающем окне (справа на рисунке ниже) показаны обе базы данных, которые я пытаюсь сравнить.
Однако после того, как я выбрал один из них для источника или цели, все всплывающие окна закрываются, но ничто не заполняет раскрывающиеся меню "Выбрать источник..." или "Выбрать цель...". На самом деле, это выглядит как первая картинка.
Есть ли решение для этого, чтобы я мог сравнить схемы между базами данных?
Обновить:
Я пробовал это на VS 2012, 2015 и 2017. Все сталкиваются с той же проблемой. Программное обеспечение VS и системное программное обеспечение обновлены. Ниже приведены некоторые версии программного обеспечения, которые я использую, если это поможет.
Windows 7 Enterprise SP1
VS 2012, 2015 и 2017
SQL Server 2014
.NET Framework v4.7.02053
2 ответа
ОК, так что мне удалось это исправить. Прежде всего, вам нужно установить SSDT со страниц Microsoft. Просто погугли это. Убедитесь, что вы также указали его в отдельных компонентах при запуске Installer (на Modify). Требуется только база данных SQL Server (я мог выбрать из служб интеграции и еще 3).
Далее необходимо "Удалить соединение из истории" в модале Schema Compare для выбора соединения.
Я закрыл VS на этом этапе, чтобы убедиться, что связь больше не в истории. При следующем запуске VS у вас не должно быть проблемных связей в истории.
Воссоздайте соединение (я проверил "запомнить пароль") и вуаля. Схема сравнения работает.
Не совсем уверен, но в отчаянии я также установил "Redgate ReadyRoll Core", "Redgate SQL Prompt Core" и "Redgate SQL Search". Я не думаю, что это имеет значение, но если ничего не помогает...
Изменить: Это работало на 2-х машинах и, похоже, не связано с версией VS.
У меня была такая же проблема, но я не знаю, была ли у меня та же причина.
Мои проблемы начались после изменения базы данных с SQL Server на Windows Server на SQL Server в контейнере Linux. Сравнение схем может принять мой выбор, но поле базы данных никогда не заполнится, и я не могу выполнить сравнение.
Я должен был сделать 2 вещи, чтобы решить проблему.
- Обновите Visual Studio (используя стандартный модуль обновления в Visual Studio).
- Обновите надстройку средств разработки SQL Server (SSDT) для Visual Studio до версии предварительного просмотра, которая поддерживает SQL Server в Linux. Эта загрузка доступна здесь.
После того, как оба обновления были на месте, я мог выбрать базу данных и выполнить сравнения схем между моим проектом и SQL Server в Linux точно так же, как я делал для SQL Server в Windows.
Если вы используете локальную базу данных, проверьте, какую версию SQL Management studio вы используете.
У меня была такая же проблема с Visual Studio Pro 2017 и SQL Management Studio v18.6 с установленным SQL Server 2017. Я попробовал все вышеперечисленные решения, и мне не повезло. Даже возврат к Visual Studio 2015 не сработал. Что действительно работало, так это возвращение к SQL Management Studio v17.9.1
Больше никаких проблем. Я могу попробовать обновить Visual Studio до 2017 еще раз, чтобы проверить, работает ли это сейчас