Ошибка при сравнении схем базы данных проекта
Раньше он работал нормально, когда я сравнивал схему проекта базы данных в Visual Studio 2012 с удаленной базой данных, развернутой на сетевом сервере, но я не могу выяснить, почему сейчас происходит сбой.
Он отлично работает, когда я сравниваю схему с той же базой данных, развернутой на локальном ПК. Поэтому кажется, что инструмент сравнения работает, но, похоже, проблема с удаленным сервером. В любом случае я могу решить проблему.
Я сравниваю ошибку с удаленным сервером ниже:
Error 52 Target is unavailable: Value cannot be null.Parameter name: catalogStamp SqlSchemaCompare2 0 0
4 ответа
Я недавно столкнулся с той же проблемой, вероятно, не той же самой, что и оригинальный постер, но в моем случае это было связано с уровнем совместимости базы данных, к которой я подключался.
База данных, к которой я подключался, была основана на Azure, и Microsoft недавно обновила их до уровня совместимости по умолчанию 140 (эквивалент SQL 2017). Предыдущие экземпляры работали на более ранних уровнях и работали прямо с самого начала. Запуск нижеуказанного исправил проблему для меня:
ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 120
Обязательно проверяйте любые побочные эффекты, прежде чем вносить изменения в уровень совместимости на любой производственной базе данных!
Как прокомментировал Thibault ниже, если вы хотите проверить существующие уровни совместимости, вы можете использовать:
SELECT name, compatibility_level FROM sys.databases
И если вы хотите посмотреть, к каким версиям относятся различные уровни совместимости, посмотрите здесь https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level
Вы должны указать логин и пароль при подключении к серверу SQL. Если вы используете логин без пароля, это переходит эту ошибку.
Моя БД была Azure SQL DB и столкнулась с этой проблемой. Она была решена для меня с помощью Visual Studio 2017 вместо изменения уровней совместимости.
Имеется ли у вас удаленный доступ к базе данных SQL (включена ли служба TCP/IP) также, если вы используете вход в систему SQL Server, позволяют ли параметры безопасности SQl Server разрешать аутентификацию Windows и входы в систему SQL Server?