Параметры и свойства импорта SqlPackage

Действие импорта SqlPackage импортирует данные схемы и таблицы из BACPAC-файла (BACPAC) в новую или пустую базу данных в SQL Server или База данных SQL Azure. Во время операции импорта в существующую базу данных в целевой базе данных не могут находиться никакие определяемые пользователем объекты схемы. Кроме того, можно создать новую базу данных с помощью действия импорта, если у пользователя, прошедшего проверку подлинности, есть разрешения на создание базы данных.

Примечание.

Хотя идентификатор Microsoft Entra — это новое имя Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD по-прежнему остается в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.

Примечание.

Импорт SqlPackage лучше всего подходит для баз данных в возрасте до 200 ГБ. Для больших баз данных может потребоваться оптимизировать операцию с помощью свойств, доступных в этой статье, и советов по устранению неполадок с sqlPackage.

Синтаксис для командной строки

SqlPackage инициирует действия, указанные с помощью параметров, свойств и переменных SQLCMD, указанных в командной строке.

SqlPackage /Action:Import {parameters} {properties}

Примеры

# example import to Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Persist Security Info=False;User ID=sqladmin;Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example import using short form parameter names
SqlPackage /a:Import /tsn:"{yourserver}.database.windows.net,1433" /tdn:"AdventureWorksLT" /tu:"sqladmin" \
    /tp:"{your_password}" /sf:"C:\AdventureWorksLT.bacpac"

# example import using Microsoft Entra managed identity
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Managed Identity;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

# example import connecting using Microsoft Entra username and password
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;Authentication=Active Directory Password;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;User ID={yourusername};Password={yourpassword}"

# example import connecting using Microsoft Entra universal authentication
SqlPackage /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example import connecting using an access token associated with a service principal
$Account = Connect-AzAccount -ServicePrincipal -Tenant $Tenant -Credential $Credential
$AccessToken_Object = (Get-AzAccessToken -Account $Account -Resource "https://database.windows.net/")
$AccessToken = $AccessToken_Object.Token

SqlPackage /at:$AccessToken /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# OR
SqlPackage /at:$($AccessToken_Object.Token) /Action:Import /SourceFile:"C:\AdventureWorksLT.bacpac" \
    /TargetConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Параметры действия импорта

Параметр Краткая форма значение Описание
/AccessToken: /В: {строка} Определяет маркер доступа для аутентификации на основе маркеров. Этот маркер используется при подключении к целевой базе данных.
/Action: /a: Import Указывает действие, подлежащее выполнению.
/AzureCloudConfig: /Acc: {строка} Указывает пользовательские конечные точки для подключения к идентификатору Microsoft Entra в формате: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}".
/Diagnostics: /D: {True|False} Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False.
/DiagnosticsFile: /Df: {строка} Указывает файл, в котором следует вести журнал диагностики.
/MaxParallelism: /Mp: {целое_число} Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8.
/ModelFilePath: /Мфу: {строка} Определяет путь к файлу для переопределения файла model.xml в исходном файле. Использование этого параметра может привести к сбою развертывания и (или) непредвиденной потере данных. Этот параметр предназначен только для использования при устранении неполадок с публикацией, импортом или созданием скриптов.
/Properties: /p: {имя_свойства}={значение} Указывает пару "имя-значение" для свойства действия; {имя_свойства}={значение}.
/Quiet: /Q: {True|False} Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False.
/SourceFile: /Sf: {строка} Указывает исходный файл, который должен использоваться в качестве источника действия из локального хранилища. Если используется этот параметр, все остальные параметры источника будут недействительны.
/TargetConnectionString: /Tcs: {строка} Указывает допустимую строка подключения SQL Server или Azure в целевую базу данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами целевого объекта.
/TargetDatabaseName: /tdn: {строка} Задает переопределение для имени базы данных, которая является целью действия SqlPackage.
/TargetEncryptConnection: /Tec: {Необязательный|Обязательный|Строгий|True|False} Определяет, должно ли использоваться шифрование SQL для подключения к целевой базе данных. Значение по умолчанию — True.
/TargetHostNameInCertificate: /thnic: {строка} Указывает значение, используемое для проверки целевого TLS/SSL-сертификата SQL Server при шифровании уровня связи с помощью TLS.
/TargetPassword: /Tp: {строка} В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к целевой базе данных.
/TargetServerName: /Tsn: {строка} Определяет имя сервера, где размещается целевая база данных.
/TargetTimeout: /Tt: {целое_число} Задает время ожидания подключения к целевой базе данных (в секундах). Для идентификатора Microsoft Entra рекомендуется, чтобы это значение было больше или равно 30 секундам.
/TargetTrustServerCertificate: /ttsc: {True|False} Определяет, используется ли протокол TLS для шифрования подключения к целевой базе данных без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False.
/TargetUser: /Ту: {строка} В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к целевой базе данных.
/TenantId: /Tid: {строка} Представляет идентификатор клиента Microsoft Entra или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей Microsoft Entra, а также учетных записей Майкрософт, таких как outlook.com, hotmail.com или live.com. Если этот параметр опущен, будет использоваться идентификатор клиента по умолчанию для идентификатора Microsoft Entra ID, предполагая, что прошедший проверку подлинности пользователь является собственным пользователем для этого AD. Однако в этом случае любые гостевые или импортированные пользователи и /или учетные записи Майкрософт, размещенные в этом идентификаторе Microsoft Entra, не поддерживаются, и операция завершится ошибкой.
Дополнительные сведения см. в статье универсальной проверки подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).
/ThreadMaxStackSize: /tmss: {целое_число} Указывает максимальный размер в мегабайтах для потока, выполняемого действием SqlPackage. Этот параметр следует использовать только при обнаружении исключений переполнения стека, возникающих при анализе очень больших инструкций Transact-SQL.
/UniversalAuthentication: /Ua: {True|False} Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно использовать для проверки подлинности Microsoft Entra без MFA, используя интерактивный протокол, требующий от пользователя ввод имени пользователя и пароля или встроенной проверки подлинности (учетные данные Windows). Если для параметра /UniversalAuthentication задано значение True, проверка подлинности Microsoft Entra не может быть указана в source Подключение ionString (/scs). Если для параметра /UniversalAuthentication задано значение False, проверка подлинности Microsoft Entra должна быть указана в источнике Подключение ionString (/scs).
Дополнительные сведения см. в статье универсальной проверки подлинности с помощью База данных SQL и Azure Synapse Analytics (поддержка SSMS для MFA).

Свойства, относящиеся к действию импорта

Свойство Значение Описание
/p: CommandTimeout=(INT32 '60') Задает время ожидания команды в секундах при выполнении запросов к SQL Server.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperscale | Default } 'Default') Определяет выпуск Базы данных SQL Azure. См. Уровни служб Базы данных SQL Azure.
/p: DatabaseLockTimeout=(INT32 '60') Позволяет задать превышение времени ожидания блокировки в секундах для базы данных при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "-1".
/p: DatabaseMaximumSize=(INT32 '0') Определяет максимальный размер в ГБ для базы данных SQL Azure.
/p: DatabaseServiceObjective=(STRING) Определяет уровень производительности для базы данных SQL Azure, например "P0" или "S1".
/p: DisableIndexesForDataPhase=(BOOLEAN 'True') Если значение равно true (по умолчанию), индексы отключаются перед импортом данных. Если значение равно false, индексы не перестраиваются.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'False') Не использовать параллелизм при перестроении индексов во время импорта данных в SQL Server.
/p: HashObjectNamesInLogs=(BOOLEAN 'False') Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением.
/p: ImportContributorArguments=(STRING) Указывает аргументы для участников развертывания. Это свойство должно быть списком значений, разделенных точкой с запятой.
/p: ImportContributorPaths=(STRING) Задает пути для загрузки дополнительных участник импорта. Это свойство должно быть списком значений, разделенных точкой с запятой.
/p: ImportContributors=(STRING) Указывает участников развертывания, которые должны выполняться при импорте пакета BACPAC. Это свойство должно быть списком полных имен или идентификаторов участников сборки, разделенных точками с запятой.
/p: LongRunningCommandTimeout=(INT32 '0') Позволяет задать время ожидания в секундах для длительной команды при выполнении запросов к SQL Server. Для ожидания без ограничений используйте значение "0".
/p: PreserveIdentityLastValues=(BOOLEAN 'False') Указывает, следует ли сохранять последние значения для столбцов идентификаторов во время развертывания.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') Если значение равно true, индексы перестраиваются в автономном режиме после импорта данных в SQL Server.
/p: Storage=({File|Memory}) Указывает, как сохраняются элементы при построении модели базы данных. Для обеспечения высокой производительности по умолчанию используется значение InMemory. Для больших баз данных требуется хранилище с использованием файлов.

Next Steps