SqlPackage Export のパラメーターとプロパティ

SqlPackage Export 操作によって、接続されているデータベースが BACPAC ファイル (.bacpac) にエクスポートされます。 既定では、すべてのテーブルのデータが .bacpac ファイルに含まれます。 必要に応じて、データをエクスポートする対象のテーブルの一部のみを指定できます。 Export 操作の検証によって、エクスポート対象にテーブルの一部を指定した場合でも、完全な対象データベースに対する Azure SQL Database の互換性が維持されます。

Note

Microsoft Entra ID はAzure Active Directory (Azure AD) の新しい名前ですが、既存の環境の中断を防ぐために、UI フィールド、接続プロバイダー、エラー コード、コマンドレットなど、ハードコーディングされた一部の要素でAzure AD が残ります。 この記事では、2 つの名前は交換可能です。

コマンドライン構文

SqlPackage を使うと、コマンド ラインで指定したパラメーター、プロパティ、SQLCMD 変数を使って、指定した操作を開始できます。

SqlPackage /Action:Export {parameters} {properties}

注意

SqlPackage のエクスポートのパフォーマンスは、200 GB 未満のデータベースの場合、最高です。 より大規模なデータベースでは、この記事と「SqlPackage のトラブルシューティング」のヒントに記載されているプロパティを使用して、操作を最適化してください。

# example export from Azure SQL Database using SQL authentication and a connection string
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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 export using short form parameter names, skips schema validation
SqlPackage /a:Export /ssn:"{yourserver}.database.windows.net,1433" /sdn:"AdventureWorksLT" /su:"sqladmin" \
    /sp:"{your_password}" /tf:"C:\AdventureWorksLT.bacpac" /p:VerifyExtraction=False

# example export using Microsoft Entra managed identity
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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 export connecting using Microsoft Entra username and password
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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 export connecting using Microsoft Entra universal authentication
SqlPackage /Action:Export /TargetFile:"C:\AdventureWorksLT.bacpac" /UniversalAuthentication:True \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
# example export 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:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"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:Export /TargetFile:"C:\AdventureWorksLT.bacpac" \
    /SourceConnectionString:"Server=tcp:{yourserver}.database.windows.net,1433;Initial Catalog=AdventureWorksLT;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"

Export 操作のパラメーター

パラメーター 短い形式 説明
/AccessToken: /at: {string} ターゲット データベースに接続するときに使用するトークンベースの認証アクセス トークンを指定します。
/Action: /a: エクスポート 実行する操作を指定します。
/AzureCloudConfig: /acc: {string} Microsoft Entra ID に接続するカスタム エンドポイントを、AzureActiveDirectoryAuthority={value};DatabaseServicePrincipalName={value}" の形式で指定します。
/Diagnostics: /d: {True|False} 診断ログがコンソールへの出力かどうかを指定します。 既定値は False です。
/DiagnosticsFile: /df: {string} 診断ログを保存するファイルを指定します。
/MaxParallelism: /mp: {int} 1 つのデータベースに対して実行される同時実行操作の並列処理の次数を指定します。 既定値は 8 です。
/OverwriteFiles: /of: {True|False} SqlPackage が既存のファイルを上書きするかどうかを指定します。 False を指定すると、既存のファイルが検出された場合に SqlPackage の操作が中止します。 既定値は True です。
/Properties: /p: {PropertyName}={Value} 操作固有のプロパティの名前と値のペア ({PropertyName}={Value}) を指定します。
/Quiet: /q: {True|False} 詳細なフィードバックを非表示にするかどうかを指定します。 既定値は False です。
/SourceConnectionString: /scs: {string} ソース データベースの有効な SQL Server または SQL Azure 接続文字列を指定します。 このパラメーターを指定する場合、他のどのソース パラメーターとも同時には使用できません。
/SourceDatabaseName: /sdn: {string} ソース データベースの名前を定義します。
/SourceEncryptConnection: /sec: {Optional|Mandatory|Strict|True|False} ソース データベース接続に SQL 暗号化を使用するかどうかを指定します。 既定値は True です。
/SourceHostNameInCertificate: /shnic: {string} 通信レイヤーが TLS を使って暗号化されているときに、ソース SQL Server の TLS/SSL 証明書の検証に使われる値を指定します。
/SourcePassword: /sp: {string} SQL Server 認証シナリオでは、ソース データベースへのアクセスに使用するパスワードを定義します。
/SourceServerName: /ssn: {string} ソース データベースをホストしているサーバーの名前を定義します。
/SourceTimeout: /st: {int} ソース データベースへの接続を確立する際のタイムアウトを秒単位で指定します。
/SourceTrustServerCertificate: /stsc: {True|False} TLS を使用してソース データベースへの接続を暗号化し、証明書チェーンを検証せずに信頼を確認するかどうかを指定します。 既定値は False です。
/SourceUser: /su: {string} SQL Server 認証シナリオでは、ソース データベースへのアクセスに使用する SQL Server ユーザーを定義します。
/TargetFile: /tf: {string} データベースではなく、ターゲット ファイル (.dacpac ファイル) をアクションのターゲットとして使用するように指定します。 このパラメーターを使用した場合、他のターゲット パラメーターは無効になります。 このパラメーターは、データベース ターゲットのみをサポートするアクションに対しては無効です。
/TenantId: /tid: {string} Microsoft Entra テナント ID または ドメイン名を表します。 このオプションは、ゲストまたはインポートされた Microsoft Entra ユーザーと Microsoft アカウント (outlook.com、hotmail.com、live.com など) をサポートするために必要です。 このパラメーターを省略すると、認証されたユーザーがこのテナントのネイティブ ユーザーであると想定して、Microsoft Entra ID の既定のテナント ID が使用されます。 ただし、この場合、ゲスト、またはこの Microsoft Entra ID でホストされているインポートされたユーザーと Microsoft アカウントはサポートされず、操作は失敗します。
詳細については、SQL Database と Azure Synapse Analytics を使用したユニバーサル認証 (SSMS での MFA のサポート) に関するページをご覧ください。
/ThreadMaxStackSize: /tmss: {int} SqlPackage 操作を実行するスレッドの最大サイズを MB 単位で指定します。 このオプションは、非常に大きな Transact-SQL ステートメントを解析するときに発生するスタック オーバーフロー例外が発生した場合にのみ使用してください。
/UniversalAuthentication: /ua: {True|False} ユニバーサル認証を使用するかどうかを指定します。 True に設定すると、対話型認証プロトコルがアクティブになり、MFA がサポートされます。 このオプションは、ユーザーによるユーザー名とパスワードの入力を必要とする対話型プロトコルまたは統合認証 (Windows 認証情報) を使用した、MFA なしの Microsoft Entra 認証に使用することもできます。 /UniversalAuthentication が True に設定されているときは、SourceConnectionString (/scs) で Microsoft Entra 認証を指定することはできません。 /UniversalAuthentication が False に設定されているときは、SourceConnectionString (/scs) で Microsoft Entra 認証を指定する必要があります。
詳細については、SQL Database と Azure Synapse Analytics を使用したユニバーサル認証 (SSMS での MFA のサポート) に関するページをご覧ください。

エクスポート アクションに固有のプロパティ

プロパティ 説明
/p: CommandTimeout=(INT32 '60') SQL Server に対してクエリを実行するときのコマンドのタイムアウト (秒) を指定します。
/p: CompressionOption=({Normal|Maximum|Fast|SuperFast|NotCompressed} 'Normal') 圧縮の種類を指定します。
/p: DatabaseLockTimeout=(INT32 '60') SQLServer に対してクエリを実行するときのデータベース ロックのタイムアウトを秒単位で指定します。 無期限に待機するには、-1 を使用します。
/p: HashObjectNamesInLogs=(BOOLEAN 'False') ログ内のすべてのオブジェクト名をランダムなハッシュ値に置き換えるかどうかを指定します。
/p: IgnoreIndexesStatisticsOnEnclaveEnabledColumns=(BOOLEAN 'False') ランダム化された暗号化とエンクレーブ対応の列暗号化キーを使用して暗号化された列のインデックスまたは統計情報を無視する (生成された bacpac に含めない) かどうかを指定します。 既定 (false) では、ランダム化された暗号化とエンクレーブ対応の列暗号化キーを使用して暗号化された列のインデックスまたは統計は、エクスポート アクションをブロックします。
/p: LongRunningCommandTimeout=(INT32 '0') SQL Server に対してクエリを実行するときの実行時間の長いコマンドのタイムアウトを秒単位で指定します。 無期限に待機するには、0 を使用します。
/p: Storage=({File|Memory}) 抽出時に使用されるスキーマ モデルのバックアップ用ストレージの種類を指定します。 'Memory' は、.NET Core バージョンの SqlPackage の既定値です。 'File' は、.NET Framework バージョンの SqlPackage でのみ使用でき、また既定値となります。
/p: TableData=(STRING) データの抽出元テーブルを示します。 テーブル名は次の形式で指定してください: schema_name.table_identifier。名前部分はかっこで囲んでも囲まなくても構いません。 このプロパティは、複数のオプションを示すために複数回指定できます。
/p: TargetEngineVersion=({Default|Latest|V11|V12} 'Latest') このプロパティは非推奨です。使用をお勧めしません。 想定されている Azure SQL Database のターゲット エンジンのバージョンを指定します。
/p: TempDirectoryForTableData=(STRING) パッケージ ファイルに書き込む前にテーブル データをバッファーするために使用する、代替一時ディレクトリを指定します。 この場所で必要な領域の占める割合が、データベースの完全なサイズに対して大きくなることがあります。
/p: VerifyExtraction=(BOOLEAN 'True') 抽出されたスキーマ モデルを検証するかどうかを指定します。 true に設定すると、スキーマ検証規則が dacpac または bacpac で実行されます。
/p: VerifyFullTextDocumentTypesSupported=(BOOLEAN 'False') Microsoft Azure SQL Database v12 のサポートされているフルテキスト ドキュメントの種類を確認するかどうかを指定します。

次の手順