Ошибка: сравнение схемы базы данных с использованием проекта схемы с базой данных Azure.

Я использую проект базы данных для обслуживания схем базы данных. Сравнение схем отлично работает с локальными базами данных. Но когда я подключаюсь к базе данных Azure и сравниваю с проектом схемы, возникает следующая ошибка.

Неожиданное исключение, обнаруженное во время заполнения целевой модели: значение не может быть нулевым. Имя параметра: catalogStamp

Я попытался очистить все сохраненные соединения через HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\SSDT\ConnectionMruList.

введите здесь описание изображения

Любая помощь будет оценена по достоинству. Спасибо!


person Aruna    schedule 22.11.2017    source источник
comment
Попробуйте установить Visual Studio 2017 на другой компьютер или виртуальную машину. Вы можете обнаружить, что это было исправлено в Visual Studio 2017.   -  person Alberto Morillo    schedule 22.11.2017
comment
Да. Ты прав. Работает на 2017   -  person Aruna    schedule 23.11.2017
comment
Я рад познакомиться с Аруной. Это может быть хорошей причиной для обновления.   -  person Alberto Morillo    schedule 23.11.2017
comment
В яблочко. Уже начал конвертацию. Спасибо еще раз!   -  person Aruna    schedule 23.11.2017


Ответы (3)


Попробуйте установить Visual Studio 2017 на другой компьютер или виртуальную машину. Это было исправлено в Visual Studio 2017.

person Alberto Morillo    schedule 23.11.2017

Приятно знать, что это было исправлено в VS2017, но для тех, кто работает с более ранними версиями VS и хочет знать причину, это происходит из-за несоответствия режима совместимости с базой данных. Я видел это после того, как в прошлом году Microsoft обновила уровень совместимости базы данных по умолчанию в Azure (см. sql-databases/" rel="nofollow noreferrer">https://azure.microsoft.com/en-gb/blog/default-compatibility-level-140-for-azure-sql-databases/)

Если вы используете более старую версию Visual Studio, вы можете изменить уровень совместимости, используя:

ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 120

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

Вы можете проверить текущий уровень совместимости ваших баз данных с помощью

SELECT name, compatibility_level FROM sys.databases 
person d219    schedule 27.02.2018
comment
Эта тема - находка, и этот ответ идеален. Развертывание базы данных VS 2015 в Azure SQL дает мне ошибку. Azure SQL был создан на уровне совместимости 150. Я изменил его на уровень совместимости 120. Теперь сравнение и развертывание схемы VS2015 работает! - person SherlockSpreadsheets; 29.12.2020

Попробуй это

ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 120
person Aakash    schedule 07.12.2017