2013-07-22 2 views
3

Раньше это работало хорошо, когда я сравнивал схему проекта базы данных в Visual Studio 2012 с удаленной базой данных, развернутой на сетевом сервере, но я не могу устранить проблему, почему она не работает сейчас ,Ошибка при сравнении схем проекта базы данных

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

Ошибка Я имею в сравнении с удаленным сервером ниже:

Error 52 Target is unavailable: Value cannot be null.Parameter name: catalogStamp SqlSchemaCompare2 0 0 
+0

Вы когда-нибудь находили решение этого? У меня эта проблема сейчас. – Kyle

+0

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

ответ

0

У вас есть удаленный доступ к БД SQL включен (включена служба TCP/IP) также, если вы используете SQL Server Login ваши параметры безопасности SQl Server позволяют выполнять проверку подлинности Windows и входа в SQL Server?

+0

да. все возможности, которые вы предложили, но все еще работающие :) – Nexus23

0

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

3

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

База данных, к которой я подключалась, была основана на Azure, и Microsoft недавно обновили их до уровня совместимости 140 (эквивалент SQL 2017). Предыдущие примеры были запущены на более ранних уровнях и работал прямо от прочь, выполнив ниже исправили проблему для меня:

ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 120 

Очевидно не забудьте проверить какие-либо побочные эффекты, прежде чем сделать изменение уровня совместимости на любом производстве дб!

Как Тибо прокомментировал ниже, если вы хотите, чтобы проверить существующие уровни совместимости вы можете использовать:

SELECT name, compatibility_level FROM sys.databases 

И если вы хотите увидеть, какие версии различных уровней совместимости связаны, чтобы посмотреть здесь https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level

+1

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

+1

Отличный ответ. Если вы хотите проверить COMPATIBILITY_LEVEL вашей базы данных, используйте 'SELECT name, compatibility_level FROM sys.databases' –

Смежные вопросы