Подтвердить что ты не робот

Ошибка сравнения схемы SQL "Целевое недоступно"

При сравнении проекта SQLServer в Visual Studio 2015 Update 2 с базой данных SQL Server 2012 отображается ошибка "Целевой недоступен" или "Источник недоступен" при изменении направления.

Он работал нормально пару месяцев назад. Есть ли обходной путь? Я не мог найти.

4b9b3361

Ответ 1

Я обнаружил, что использование имя_пользователя @servername, поскольку имя пользователя для подключения будет исправлять проблему, когда это происходит с базами данных Azure. У меня были связи, которые исторически работали, не делая этого внезапно останавливаясь, а затем это исправило это для меня.

Например, при использовании входа mylogin и подключении к myserver.database.windows.net, если вместо этого я использую [email protected] windows.net как имя пользователя, я не получу проблему "Источник недоступен".

Ответ 2

Я получаю эту ошибку в Visual Studio 2017, когда использую аутентификацию SQL Server, но не сохраняю пароль. Я проверил эти шаги с Visual Studio 15.6.3 и SQL Server 12.0.5000.0

Исправление ошибки

Это решает проблему, но проблема возвращается в следующий раз, когда я перезапускаю Visual Studio.

  1. Перейдите в ИнструментыSQL ServerСравнение новой схемы...
  2. Выберите " Выбрать источник" или " Выбрать цель"
  3. Выберите Выбрать соединение
  4. В разделе Последние подключения найдите все подключения, которые дали вам эту ошибку
  5. Для каждого из них щелкните соединение правой кнопкой мыши и выберите " Удалить из истории".
  6. Перезапустите Visual Studio

Предотвращение возврата ошибки

  1. Полное исправление ошибки выше
  2. При настройке параметров подключения установите флажок " Запомнить пароль".

Воспроизведение ошибки

Если вы хотите устранить эту ошибку, вот как мне удалось воспроизвести ее.

  1. Перейдите в ИнструментыSQL ServerСравнение новой схемы...
  2. Выберите источник и целевое соединение
  3. По крайней мере для одного подключения используйте проверку подлинности SQL Server, но не выбирайте Запомнить пароль
  4. Нажмите Сравнить
  5. Убедитесь, что он работает без ошибок
  6. Перезапустите Visual Studio
  7. Повторите шаги 1-4, используя точно такие же детали подключения

Ответ 3

Пробовав все здесь, это то, что сработало для меня:

  • Закрыть экземпляр VS.

  • Удалить сохраненные ключи подключения в

HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14,0\ConnectionMruList

  1. Верните VS и повторите попытку.

Ответ 4

Другие ответы не работали для меня, поскольку я использовал SQL Server напрямую, а не Azure, но после проверки расширенных свойств строки подключения я увидел, что для проверки подлинности было установлено значение "Не указано", а сетевая библиотека была пуста.

Я изменил их, и он снова сработал. Довольно странно, поскольку он позволяет мне выбирать базу данных для подключения. Это просто не позволит мне сравнивать схемы, дающие сообщение "Источник недоступен".

Sql

Ответ 5

Для меня это был символ \ в конце IP-адреса сервера в поле server name, который его исправил. Очень странно.

например. вместо 10.10.10.10 пишу 10.10.10.10\, и он подключается нормально.

Примечание. Я использую Visual Studio 2017.

Ответ 6

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

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

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

Я решил проблему, добавив аргумент Password в строку подключения в файле. Есть два местоположения, в которых задана целевая строка соединения (XPaths, показанные ниже):

  • /SchemaComparison/TargetModelProvider/ConnectionBasedModelProvider/ConnectionString
  • /SchemaComparison/SchemaCompareSettingsService/ConfigurationOptionsElement/PropertyElementName[Name='TargetConnectionString']

После этих изменений я снова открыл файл .scmp, и сравнение прошло успешно.

Ответ 7

У меня были смешанные результаты с другими ответами здесь. Я использовал файл сравнения сохранения, который собрал другой разработчик. Это автономный SQL Server, а не база данных Azure. Сравнение будет работать иногда, а не другие (указание цели - ошибка). В моем случае в сохраненном сравнении использовалось только имя сервера, а не полное доменное имя. Когда я перешел на полное доменное имя, это сработало для меня. Я не уверен, что проблема вернется снова, но думал, что добавлю эту информацию, если она будет полезна для других.

Ответ 8

Я пробовал в 2015 году версию Visual Studio Professional, и у меня возникла эта проблема во время сравнения данных SQL, и она работала для меня, когда я использую имя хоста вместо IP-адреса баз данных. Надеюсь, что это решит проблему.

Ответ 9

Процесс блокировал базу данных. После выполнения kill [spid] он снова работал.

Ответ 11

Я имел в виду сервер SQL через IP и дал мне эту проблему. Я упоминал об этом через его DNS-имя, и проблема была решена!

Не знаю, почему! Однако он работал следующим образом:)

Ответ 12

Я столкнулся с этой ошибкой в ​​Visual Studio 2017. Ни один из других ответов здесь не работал у меня.

Вот что мне удалось исправить:

  • Проведите сравнение SQL данных, выбрав один и тот же сохраненный источник и целевые соединения
  • Проведите сравнение новой схемы SQL с использованием тех же сохраненных исходных и целевых соединений.

Я не уверен, что эти шаги - это исправление или если это просто совпадение.

Ответ 13

Я могу заставить его работать, когда я щелкаю правой кнопкой мыши на имени базы данных в окне обозревателя объектов SQL Server и выбираю "Сравнение схем". Если я пытаюсь использовать окно сравнения схем, которое открывается из меню "Инструменты", оно никогда не работает.

Ответ 14

У меня фактически была такая же проблема в VS studio 2015. Но так как база данных была на моем ПК, я использовал localhost вместо реального имени компьютера. Я просто вручную выбрал компьютерный сервер, как в предложении самой Visual Studio, и это сработало.

Ответ 15

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

Когда вы указываете имя вашего сервера, укажите протокол и порт, как это

Имя сервера: tcp: my-server-name, 1443

Мой сервер называется Azure BTW

Ответ 16

Ни один из ответов, предоставленных здесь, не работал для меня; Я использую SQL Server и Visual Studio 2017. Мне удалось провести сравнение, добавив IP-адрес сервера в мой файл hosts, а затем используя это имя хоста в окне подключения.

Ответ 17

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

  • Зависит от недоступности, источника или цели. Выберите прозрачный источник/цель.
  • Сохранить изменения в файле
  • Верните файл и снова выберите новое соединение (в моем случае база данных Azure)
  • Нажмите "Сравнить снова", теперь он работает.