2016-12-07 2 views
0

У меня есть проект базы данных SQL Server в Visual Studio, и я удалил существующую хранимую процедуру. У меня также есть база данных, где эта точная хранимая процедура существует.sqlPackage.exe не включая отложенную хранимую процедуру в сценарии развертывания

Когда я запускаю сравнение схемы в Visual Studio на обоих, в полученном окне сравнения схемы, я могу увидеть хранимую процедуру, которая будет удалена в сгенерированном сценарии развертывания. Однако, когда я вызываю sqlPackage.exe из сценария Powershell, сгенерированный сценарий развертывания не содержит инструкции drop для хранимой процедуры. Интересно, что когда я вношу изменения в хранимую процедуру, она включается в сгенерированный сценарий развертывания с инструкцией alter.

Почему sqlPackage.exe исключает инструкцию для хранимой процедуры, когда я удаляю ее, но включаю ее для изменения? Я чувствую, что это параметр, который мне нужно передать в sqlPackage.exe, но они, похоже, отказываются, а не выбирают (https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_7).

Ниже моя команда из Powershell:

& 'sqlPackage' '/Action:Script' "/SourceFile:$sourceDacpacFile" "/TargetFile:$targetDacpacFile" "/OutputPath:$outputPath" "/TargetDatabaseName:$targetDatabaseName" "/p:AllowIncompatiblePlatform=$allowIncompatiblePlatform" "/p:BlockOnPossibleDataLoss=$blockOnPossibleDataLoss" "/p:DropIndexesNotInSource=$dropIndexesNotInSource" 

ответ

1

Посмотрите на свойства DropObjectsNotInSource

Определяет, будет ли файл (.dacpac) являются объектами, которые не существуют в базе данных снимка удаляется из целевой базы данных при публикации в базе данных. Это значение имеет приоритет над DropExtendedProperties.

По умолчанию Ложные см: DacDeployOptions.DropObjectsNotInSource Property

+0

сэр. есть ли простая статья, в которой обсуждаются преимущества sqlpackage.exe, за исключением статей MSDN? Спасибо заранее. –

+1

Существует много статей о SqlPackage, попробуйте найти SSDT или Data Dude - google - ваш друг. Преимущества субъективны, это зависит от того, что важно для вас. Лично я использую SSDT для того, что я считаю большим развертыванием базы данных (~ 100 решений, ~ 1000 проектов, из которых ~ 50 - проекты баз данных), и я очень доволен тем, как это работает для меня. Сделайте свое исследование, прежде чем выбирать это, если он работает для вас, идите за ним. –

+0

благодарен за ваш быстрый ответ, спасибо. –

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