Регистрация приложения уровня данных — источник базы данных не является поддерживаемой версией ошибки SQL Server

У меня есть база данных SQL Server Express 2014. В SSMS всякий раз, когда я пытаюсь зарегистрировать базу данных как приложение уровня данных, я получаю сообщение об ошибке «Источник базы данных не является поддерживаемой версией SQL Server (localdb)\ProjectsV12 (Microsoft.SqlServer.Dac)». Как решить?

ТМИ:

У меня есть проект SSDT, в котором я пытаюсь написать условные сценарии на основе версии базы данных. Так, например, сценарий поиска может выглядеть так:

DECLARE @version_source AS VARCHAR(100) = (SELECT type_version FROM msdb.dbo.sysdac_instances WHERE database_name = DB_NAME());

IF @version_source IS NULL
BEGIN
    SET IDENTITY_INSERT instructor_title ON;

    INSERT INTO instructor_title (id, name, description) VALUES
        (1, 'Instructor', NULL),
        (2, 'Assistant Professor', NULL),
        (3, 'Associate Professor', NULL),
        (4, 'Professor', NULL)
    ;

    SET IDENTITY_INSERT instructor_title OFF;
END

Когда я публикую, я проверяю «Зарегистрировать как приложение уровня данных», и все работает нормально. Когда я начинаю отладку (которая разворачивается в (localdb)\ProjectsV12), моя логика дает сбой. Экспресс-база данных SQL Server не регистрируется как приложение уровня данных. Это приводит к тому, что переменная @version_source всегда возвращает NULL, поэтому условие моего скрипта всегда истинно. Я понимаю, что вместо этого мог бы написать идемпотентный или условный сценарий состояния базы данных, но твердо уверен, что условный сценарий версии базы данных является лучшим архитектурным решением.


person user1886415    schedule 07.11.2014    source источник


Ответы (1)


Вы можете попробовать установить флажок «Разрешить несовместимую платформу», который вы можете найти, нажав кнопку «Дополнительно ...» на вкладке «Отладка» в «Свойствах проекта».

Другое дело: какая у вас целевая платформа? Выпадающий список на вкладке «Настройки проекта» «Свойства проекта»? Он должен быть установлен на SQL Server 2014. Если SQL Server 2014 не подходит, вы должны получить последнюю версию SSDT (хотя перед установкой обязательно создайте точку восстановления системы, поскольку по какой-то причине последняя версия (по состоянию на несколько месяцев) назад) сломал мою Visual Studio, не компилировал материал и не удалял его легко; и единственные советы по SO или где-либо еще были для VS 2013, а у меня 2012).

person Solomon Rutzky    schedule 07.11.2014
comment
Спасибо, я использовал SSMS 2012 вместо 2014. - person user1886415; 07.11.2014