Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Действие импорта SqlPackage импортирует схему и данные таблицы из BACPAC-файла (.bacpac) в новую или пустую базу данных в SQL Server или Azure SQL Database. Во время операции импорта в существующую базу данных в целевой базе данных не могут находиться никакие определяемые пользователем объекты схемы. Кроме того, можно создать новую базу данных с помощью действия импорта, если у пользователя, прошедшего проверку подлинности, есть разрешения на создание базы данных. Действие импорта является частью функции переносимости базы данных SqlPackage.
Примечание.
Хотя идентификатор Microsoft Entra — это новое имя Azure Active Directory (Azure AD), чтобы предотвратить нарушение существующих сред, Azure AD по-прежнему остается в некоторых жестко закодированных элементах, таких как поля пользовательского интерфейса, поставщики подключений, коды ошибок и командлеты. В этой статье два имени являются взаимозаменяемыми.
Примечание.
Импорт SqlPackage работает лучше всего для баз данных размером менее 200 ГБ. Для больших баз данных может потребоваться оптимизировать операцию, используя свойства, доступные в этой статье, и советы по устранению неполадок с SqlPackage, или же обеспечить переносимость базы данных с помощью данных в паркетных файлах.
Синтаксис для командной строки
SqlPackage инициирует действия, указанные с помощью параметров, свойств и переменных SQLCMD, указанных в командной строке.
SqlPackage /Action:Import {parameters} {properties}
Обязательные параметры
Для действия импорта требуется SourceFile
параметр, чтобы указать имя и расположение BACPAC-файла, содержащего объекты базы данных и данные.
Для действия экспорта требуется целевое подключение, в котором будет создана новая база данных SqlPackage или где присутствует пустая база данных. Это определяется либо с помощью сочетания следующих значений:
- Параметры
TargetServerName
иTargetDatabaseName
, или -
TargetConnectionString
параметр.
Примеры
# 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;"
Параметры действия импорта
Параметр | Краткая форма | значение | Описание |
---|---|---|---|
/AccessToken: | /на: | {строка} | Определяет токен доступа для аутентификации на основе токенов, который используется при подключении к целевой базе данных. |
/Действие: | /a: | Импорт | Указывает действие, подлежащее выполнению. |
/AzureCloudConfig: | /acc: | {строка} | Указывает пользовательские конечные точки для подключения к идентификатору Microsoft Entra в формате: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}". |
/Диагностика: | /d: | {Верно|Неверно} | Указывает, следует ли выводить сведения из журнала диагностики в консоль. Значение по умолчанию — False. |
/DiagnosticsFile: | /df: | {строка} | Указывает файл, в котором следует вести журнал диагностики. |
/DiagnosticsLevel: | /dl | {Нет|Выкл.|Критическое|Ошибка|Предупреждение|Сведения|Подробно} | Указывает уровни сообщений трассировки, фильтруемых в файле диагностики. |
/DiagnosticsPackageFile: | /dpf | {строка} | Указывает файл для хранения пакета диагностики. |
/MaxParallelism: | /mp: | {целое_число} | Задает степень параллелизма для параллельных операций с базой данных. Значение по умолчанию — 8. |
/ModelFilePath: | /mfp: | {строка} | Указывает путь к файлу для замены model.xml в исходном файле. Использование этого параметра может привести к сбою развертывания и (или) непредвиденной потере данных. Этот параметр предназначен только для использования при устранении неполадок с публикацией, импортом или созданием скриптов. |
/Свойства: | /p: | {имя_свойства}={значение} | Указывает пару "имя-значение" для свойства действия; {имя_свойства}={значение}. |
/Quiet: | /q: | {True|False} | Указывает, происходит ли подавление подробного отзыва. Значение по умолчанию — False. |
/SourceFile: | /sf: | {строка} | Указывает исходный файл, который должен использоваться в качестве источника действия из локального хранилища. Если используется этот параметр, все остальные параметры источника будут недействительны. |
/TargetConnectionString: | /tcs: | {строка} | Указывает допустимую строку подключения SQL Server/Azure к целевой базе данных. Если этот параметр указан, ему будет отдаваться предпочтение перед всеми остальными параметрами целевого объекта. |
/TargetDatabaseName: | /tdn: | {строка} | Указывает переопределение имени базы данных, которая является объектом действия SqlPackage. |
/TargetEncryptConnection: | /tec: | {Необязательный|Обязательный|Строгий|True|False} | Определяет, должно ли использоваться шифрование SQL для подключения к целевой базе данных. Значение по умолчанию — True. |
/TargetHostNameInCertificate: | Этнический: | {строка} | Указывает значение, используемое для проверки целевого TLS/SSL-сертификата SQL Server при шифровании уровня связи с помощью TLS. |
/TargetPassword: | /tp: | {строка} | В сценариях с проверкой подлинности SQL Server — определяет пароль для доступа к целевой базе данных. |
/TargetServerName: | /tsn: | {строка} | Определяет имя сервера, где размещается целевая база данных. |
/TargetTimeout: | /tt: | {целое_число} | Задает время ожидания подключения к целевой базе данных (в секундах). Для идентификатора Microsoft Entra рекомендуется, чтобы это значение было больше или равно 30 секундам. |
/TargetTrustServerCertificate: | /ttsc: | {Истина|Ложь} | Определяет, используется ли протокол TLS для шифрования подключения к целевой базе данных без прохода по цепочке сертификатов для проверки доверия. По умолчанию используется значение False. |
/TargetUser: | /tu: | {строка} | В сценариях с проверкой подлинности SQL Server — определяет пользователя SQL Server для доступа к целевой базе данных. |
/TenantId: | /tid: | {строка} | Представляет идентификатор клиента Microsoft Entra или доменное имя. Этот параметр необходим для поддержки гостевых или импортированных пользователей Microsoft Entra, а также учетных записей Майкрософт, таких как outlook.com, hotmail.com или live.com. Если этот параметр пропущен, будет использоваться идентификатор арендатора по умолчанию для Microsoft Entra ID, при условии, что прошедший аутентификацию пользователь является штатным пользователем в этой AD. Однако в этом случае любые гостевые или импортированные пользователи и /или учетные записи Майкрософт, размещенные в этом идентификаторе Microsoft Entra, не поддерживаются, и операция завершится ошибкой. Для получения дополнительной информации см. Универсальная аутентификация с SQL Database и Azure Synapse Analytics (поддержка SSMS для MFA). |
/ThreadMaxStackSize: | /tmss: | {целое_число} | Указывает максимальный размер в мегабайтах для потока, выполняемого действием SqlPackage. Этот параметр следует использовать только при обнаружении исключений переполнения стека, возникающих при анализе очень больших инструкций Transact-SQL. |
/UniversalAuthentication: | /ua: | {Истина|Ложь} | Указывает, следует ли использовать универсальную проверку подлинности. Если задано значение true, протокол интерактивной проверки подлинности активируется с поддержкой MFA. Этот параметр также можно использовать для проверки подлинности Microsoft Entra без MFA, используя интерактивный протокол, требующий от пользователя ввод имени пользователя и пароля или встроенной проверки подлинности (учетные данные Windows). Если для параметра /UniversalAuthentication задано значение True, проверка подлинности Microsoft Entra не может быть указана в SourceConnectionString (/scs). Если для параметра /UniversalAuthentication задано значение False, проверка подлинности с использованием Microsoft Entra должна быть указана в SourceConnectionString (/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 'Ложь') | Не использовать параллелизм при перестроении индексов во время импорта данных в SQL Server. |
/p: | HashObjectNamesInLogs=(BOOLEAN 'False') | Определяет, следует ли заменять все имена объектов в журналах случайным хэш-значением. |
/p: | ImportContributorArguments=(STRING) | Указывает аргументы для участников развертывания. Это свойство должно быть списком значений, разделенных точкой с запятой. |
/p: | ImportContributorPaths=(STRING) | Задает пути для загрузки дополнительных компонентов импорта. Это свойство должно быть списком значений, разделенных точкой с запятой. |
/p: | ИмпортУчастников=(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. Для больших баз данных требуется файловое хранилище. |
Следующие шаги
- Дополнительные сведения о SqlPackage
- Устранение неполадок с SqlPackage
- Импорт из Azure Blob-хранилища