Экспорт SqlDatabase в Bacpac с использованием SqlPackage.exe завершается с ошибкой на факторе заполнения

Я использую следующую команду для выполнения sqlpackage для экспорта bacpac для локальной базы данных.

"C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\sqlpackage.exe" /action:Export /tf:".\dbname_Baseline.bacpac" /SourceConnectionString:"XXXXXXXXXXXX"

Он не говорит: «Первичный ключ элемента: [dbo]. [PK_Name] имеет неподдерживаемый набор свойств FillFactor и не поддерживается при использовании как часть пакета данных».

Я понимаю, что fillfactor не поддерживается, но есть ли что-нибудь, чтобы игнорировать неподдерживаемые свойства?

Спасибо

Отметка


person peter pan    schedule 31.08.2013    source источник
comment
Попробуйте обновить пакеты DacFx и SMO ​​из nuget или установите новейшие SSMS. Это должно обновить необходимые dll для I/E в вашем GAC.   -  person Pio    schedule 12.01.2016


Ответы (2)


Передайте переключатель

/p:IgnoreFillFactor ={ True | False }
person Eoin Campbell    schedule 10.09.2013
comment
Привет, я получаю, что «IgnoreFillFactor» не является допустимым аргументом для действия «Экспорт». когда я пытаюсь поместить этот аргумент в свою командную строку. - person Rodolphe Beck; 15.01.2014
comment
Это выглядит как параметр для /action:Publish вместо /action:Export. (подготовка базы данных для SQL Azure — это весело, не так ли?) - person Russell Clarvoe; 04.10.2014

Я экспериментировал с экспортом в bacpac для небольшой базы данных размером около 1 ГБ, и вы можете перенастроить коэффициент заполнения в базе данных. В SQL Server Manager Studio просто создайте сценарий «удалить и заново создать» для индекса, отредактируйте сгенерированный сценарий, чтобы удалить спецификацию коэффициента заполнения, запустите сценарий, и это повторно создаст индекс с коэффициентом заполнения по умолчанию, приемлемым для sqlpackage.exe. . Это должно работать как для PK, так и для индексов, должно быть быстрым для небольших баз данных и не должно иметь негативных последствий для базы данных.

Я понимаю, что это не отвечает на вопрос о том, как заставить sqlpackage.exe игнорировать некоторые ошибки, но, вероятно, это лучший способ решить проблему, поскольку он делает это непосредственно в базе данных.

person Ubercoder    schedule 21.04.2016
comment
Это верное решение для небольших баз данных. Однако у нас есть большая база данных с более чем 270 проблемными индексами! Должно быть лучшее решение для этого! - person James Lavery; 29.07.2016
comment
Чтобы расширить мой ответ, вы также можете изменить коэффициент заполнения с помощью команды ALTER INDEX REBUILD, вам не нужно использовать графический интерфейс SQL Server Manager Studio. Вы можете написать сценарий для перестроения индексов один за другим с требуемым коэффициентом заполнения, и вы можете запускать изменения в течение определенного периода времени. После того, как индекс перестроен с требуемым коэффициентом заполнения, его не нужно перестраивать снова. Также я считаю, что редакция SQL Server Enterprise позволяет выполнять ALTER INDEX REBUILD в режиме онлайн, что должно сократить время простоя. - person Ubercoder; 01.08.2016