Freigeben über


SqlPackage für SQL-Datenbank in Microsoft Fabric

Gilt für:SQL-Datenbank in Microsoft Fabric

In diesem Tutorial erfahren Sie, wie Sie mit SqlPackage in Ihrer SQL-Datenbank in Fabric arbeiten.

SqlPackage ist eine CLI, die Datenbankportabilität und Datenbankbereitstellungen bietet.

  • Die Portabilität (Import/Export) einer datenbank, die in Azure oder in Fabric verwaltet wird, stellt sicher, dass Ihre Daten auf anderen Plattformen portierbar sind, wenn Sie später migrieren möchten. - Portabilität umfasst die Übertragung von und von SQL Server, Azure SQL-Datenbank, azure SQL Managed Instance und SQL-Datenbank in Fabric über eigenständige Datenbankkopien (.bacpac oder .dacpac Dateien).

SqlPackage kann auch einfache Datenbankbereitstellungen inkrementeller Änderungen an Datenbankobjekten ermöglichen (neue Spalten in Tabellen, Änderungen an vorhandenen gespeicherten Prozeduren usw.).

  • SqlPackage kann eine .dacpac-Datei extrahieren, die die Definitionen von Objekten in einer Datenbank enthält, und eine .dacpac-Datei veröffentlichen, um diesen Objektstatus auf eine neue oder vorhandene Datenbank anzuwenden.
  • Der Veröffentlichungsvorgang ist auch in SQL-Projekte integriert, die offline und dynamischere Entwicklungszyklen für SQL-Datenbanken ermöglichen.

Voraussetzungen

Konfiguration

SqlPackage ist für Windows, macOS und Linux als Dotnet-Tool verfügbar. Sie können es mit dem folgenden Befehl installieren:

dotnet tool install --global Microsoft.SqlPackage

Als globales Dotnet-Tool steht SqlPackage in Ihrem Terminal als sqlpackage aus jedem Ordner zur Verfügung.

Importieren einer Datenbank mit SqlPackage

Ein .bacpac ist eine portable Kopie einer Datenbank, die für einige Migrations- und Testszenarien nützlich ist. Sie können in eine leere SQL-Datenbank .bacpac.

Hinweis

A .bacpac ist keine Sicherung oder ein Ersatz für Sicherungs-/Wiederherstellungsfunktionen. Weitere Informationen zu Sicherungen für SQL-Datenbank in Fabric finden Sie unter Automatische Sicherungen in SQL-Datenbank in Microsoft Fabric und Wiederherstellung aus einer Sicherung in sql-Datenbank in Microsoft Fabric.

  1. Wenn Sie ein .bacpac aus einer Azure- oder SQL-Server-Umgebung verwenden, müssen Sie möglicherweise die Quelldatenbank anpassen, um den SQL-Datenbank-Fabric-T-SQL-Oberflächenbereich zu erreichen. Siehe Extrahieren und Veröffentlichen von Portabilität für eine alternative Methode, die es den SqlPackage-Eigenschaften ermöglicht, einige nicht unterstützte Objekte zu überspringen.

  2. Erstellen Sie Ihre neue SQL-Datenbank in Fabric wie gewohnt über die Fabric-Schnittstelle.

  3. Kopieren Sie die Verbindungszeichenfolge aus den Einstellungen.

    Screenshot des Fabric-Portals mit der Seite „Verbindungszeichenfolgen“ der SQL-Datenbank.

  4. Verwenden Sie den Importbefehl vom Terminal im Ordner „sqlpackage“. Nennen Sie Ihrem Besitzer <servername> und <database_name>.

    sqlpackage /action:import /sourcefile:"C:\DatabaseName.bacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"
    
    • Ersetzen Sie die Verbindungszeichenfolge aus dem Dialogfeld „SQL-Datenbankeinstellungen“.
    • Ersetzen Sie den sourcefile-Wert durch den .bacpac-Namen (DatabaseName) und der location auf dem lokalen Computer.

Weitere Informationen zum Import finden Sie unter SqlPackage-Import.

Exportieren einer Datenbank mit SqlPackage

Das Exportieren eines .bacpac ist der umgekehrte Vorgang, bei dem ihr targetfile ein .bacpac ist und die sourceconnectionstring im Dialogfeld mit den SQL-Datenbankeinstellungen wie im vorherigen Beispiel zu finden ist. Nennen Sie Ihrem Besitzer <servername> und <database_name>. Zum Beispiel:

sqlpackage /action:export /targetfile:"C:\DatabaseName.bacpac" /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive"

Weitere Informationen zum Export finden Sie unter SqlPackage-Export.

Extrahieren und Veröffentlichen

Diagramm dazu, wie SQL-Datenbankprojekte Schemaänderungen verschieben können.

Ein .dacpac ist eine Datenbankschema-Modelldatei, die Definitionen für die Tabellen, gespeicherten Prozeduren und andere Objekte in der Quelldatenbank enthält. Diese Datei kann aus einer vorhandenen Datenbank mit SqlPackage oder aus einem SQL-Datenbankprojekt erstellt werden.

SqlPackage kann ein .dacpac in einer neuen (leeren) Datenbank bereitstellen oder eine vorhandene Datenbank inkrementell aktualisieren, um dem gewünschten .dacpac-Zustand zu entsprechen.

  • Beim Extrahieren wird ein .dacpac oder SQL-Dateien aus einer vorhandenen Datenbank erstellt.
  • Beim Veröffentlichen wird ein .dacpac in einer Datenbank bereitgestellt.

Die Syntax von SqlPackage- veröffentlichen und extrahieren ähnelt den Import-/Exportbefehlen.

Warnung

Die Verwendung von SqlPackage zum Bereitstellen eines SQL-Projekts oder von .dacpac in einer SQL-Datenbank in Fabric wird empfohlen. Die Bereitstellung einer .dacpac-Datei aus Visual Studio ist möglicherweise nicht erfolgreich.

Um eine .dacpac bereitzustellen, die aus Azure SQL-Datenbank, SQL Server oder einem SQL-Projekt für eine andere Plattform als SQL-Datenbank in Fabric erstellt wurde, fügen Sie die Eigenschaft /p:AllowIncompatiblePlatform=true an den SqlPackage-Veröffentlichungsbefehl an.

Portabilität extrahieren und veröffentlichen

Während sich die SqlPackage-Import-/Exportbefehle auf die Datenübertragbarkeit mit dem .bacpac Format konzentrieren, sind die Extrakt- und Veröffentlichungsbefehle in der Lage, die Datenübertragbarkeit mit dem .dacpac Format zu ermöglichen. Eigenschaften zum Extrahieren und Veröffentlichen können verwendet werden, um das Verhalten der Extraktions- und Veröffentlichungsvorgänge zu steuern und mehr Flexibilität für Konvertierungen zwischen Plattformen zu bieten.

Verwenden Sie die /p:ExtractAllTableData=true-Eigenschaft, um die Daten zu extrahieren und einzuschließen. Der Extraktvorgang erstellt ein Element .dacpac , das sowohl das Schema als auch die Daten aus der Quelldatenbank enthält. Die Eigenschaft /p:ExtractReferencedServerScopedElements=false schließt Serverbereichselemente aus, die in der SQL-Datenbank in Fabric nicht unterstützt werden. Der folgende Befehl extrahiert ein .dacpac mit Daten aus einer vorhandenen SQL-Datenbank in Fabric.

sqlpackage /action:extract /sourceconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /targetfile:"C:\extracted.dacpac" /p:ExtractAllTableData=true  /p:ExtractReferencedServerScopedElements=false

Um ein mit den Daten extrahiertes Element .dacpac zu veröffentlichen, sind keine zusätzlichen Eigenschaften erforderlich. Mehrere Eigenschaften können jedoch verwendet werden, um das Verhalten des Veröffentlichungsvorgangs zu steuern:

  • /p:AllowIncompatiblePlatform=true ermöglicht die Bereitstellung einer .dacpac , die aus einer anderen Plattform extrahiert wurde (z. B. Azure SQL-Datenbank, SQL Server).
  • /p:ExcludeObjectTypes=Logins;Users schließt Objekttypen aus, die beim Veröffentlichen in sql-Datenbank in Fabric Kompatibilitätsprobleme verursachen können. Eine vollständige Liste der Objekttypen, die ausgeschlossen werden können, finden Sie unter "SqlPackage publish".

Ähnlich wie beim SqlPackage-Import-Befehl müssen Sie, bevor etwas auf eine SQL-Datenbank in Fabric veröffentlicht wird, die Datenbank in Fabric erstellen. Sie können die Datenbank über das Fabric-Portal oder eine andere Fabric-Schnittstelle erstellen. Der folgende Befehl veröffentlicht den extrahierten .dacpac in einer leeren SQL-Datenbank in Fabric:

sqlpackage /action:publish /sourcefile:"C:\extracted.dacpac" /targetconnectionstring:"Data Source=tcp:<server_name>.database.fabric.microsoft.com,1433;Initial Catalog=<database_name>;MultipleActiveResultSets=False;Connect Timeout=30;Encrypt=True;TrustServerCertificate=False;ConnectRetryCount=6;ConnectRetryInterval=10;Authentication=Active Directory Interactive" /p:AllowIncompatiblePlatform=true /p:ExcludeObjectTypes=Logins;Users