2015-10-13 2 views
3

Сравнивая экземпляр базы данных с проектом базы данных в VS2010 с использованием SSDT, он показывает разницу в одной из хранимых процедур. DDL-скрипт процедуры Store точно такой же, но когда я расширил папку «Свойства» в процедуре «Хранилище», она показывает разницу в DefaultExpressionScript.Почему SSDT Schema Сравнение показывает разницу в DefaultExpressionScript?

Источник SP показывает, что это в DefaultExpresionScript:

DefaultExpressionScript = at 

Хотя назначение SP имеет следующее:

DefaultExpressionScript = -1 

Я не вижу, где я могу изменить это не такой объект называется DefaultExpressionScript в моем проекте базы данных. где я должен это исправить?

+1

Можете ли вы использовать более новую версию SSDT? Visual Studio 2010 довольно старая, и за последние пару лет было много работы. –

+0

Я действительно делаю переход с Visual Studio 2010 на VS 2013, а часть шагов для миграции - сначала перенести проекты базы данных к проекту SSDT в VS2010, прежде чем полностью перейти на VS2013. Тогда я столкнулся с этой проблемой. –

ответ

1

Значение по умолчаниюExpressionScript является значением по умолчанию для одного из параметров хранимой процедуры. Я предлагаю использовать Script As для получения TSQL-определения хранимой процедуры из базы данных и проверки того, что значения по умолчанию хранимой процедуры соответствуют тому, что находится в вашем проекте базы данных.

Также обратите внимание на то, что было большое количество исправлений ошибок для сравнения схем, которые недоступны в VS2010. Рассматривали ли вы установку последней версии Visual Studio 2015 Express with SSDT?

+1

Эта проблема возникает из самых старых VS, которые я использовал для новейшего VS 2015. – ChrisTorng

4

Эта ошибка по-прежнему присутствует в версии VS 2015 Update 3 с SSDT 14.0.61021.0. Однако просто скриптирование хранимой процедуры с помощью ALTER ... в SSMS и запуск этого запроса (который ничего не должен менять) исправил его для меня. После этого сравнение схем не показало различий.

+0

Это что-то изменило, но возникла другая проблема. Вместо того, чтобы сообщать, что DefaultExpressionScript не то же самое, после выполнения ALTER, он говорит, что BodyScript не то же самое, но визуально это то же самое. –

+0

Wow после выполнения второго ALTER, тогда и только тогда разница исчезла. –