Dela via


Parametrar och egenskaper för SqlPackage-import

Åtgärden SqlPackage Import importerar schema- och tabelldata från en BACPAC-fil (.bacpac) till en ny eller tom databas i SQL Server eller Azure SQL Database. Vid tidpunkten för importåtgärden till en befintlig databas får måldatabasen inte innehålla några användardefinierade schemaobjekt. Du kan också skapa en ny databas genom importåtgärden när den autentiserade användaren har skapat databasbehörigheter. Åtgärden Import är en del av databasportabilitetsfunktionen i SqlPackage.

Anmärkning

Även om Microsoft Entra ID är det nya namnet för Azure Active Directory (Azure AD), för att förhindra avbrott i befintliga miljöer, förblir Azure AD fortfarande i vissa hårdkodade element som gränssnittsfält, anslutningsproviders, felkoder och cmdletar. I den här artikeln är de två namnen utbytbara.

Anmärkning

SqlPackage-import presterar bäst för databaser under 200 GB. För större databaser kanske du vill optimera åtgärden med hjälp av egenskaper som är tillgängliga i den här artikeln och tips i Felsökning med SqlPackage eller alternativt uppnå databasportabilitet via data i parquet-filer.

Syntax för kommandorad

SqlPackage initierar de åtgärder som anges med hjälp av de parametrar, egenskaper och SQLCMD-variabler som anges på kommandoraden.

SqlPackage /Action:Import {parameters} {properties}

Obligatoriska parametrar

Åtgärden Import kräver en SourceFile parameter för att ange namnet och platsen för .bacpac-filen som innehåller databasobjekten och data.

Exportåtgärden kräver en målanslutning där en ny databas skapas av SqlPackage eller där en tom databas finns. Detta anges antingen genom en kombination av:

  • TargetServerName och TargetDatabaseName parametrar, eller
  • TargetConnectionString parameter.

Exempel

# 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;"

Parametrar för importåtgärden

Parameter Kort formulär Värde Beskrivning
/AccessToken: /vid: {string} Anger den tokenbaserade autentiseringsåtkomsttoken som ska användas när du ansluter till måldatabasen.
/Handling: /a: Importera Anger vilken åtgärd som ska utföras.
/AzureCloudConfig: /acc: {string} Anger de anpassade slutpunkterna för att ansluta till Microsoft Entra-ID i formatet: AzureActiveDirectoryAuthority={value}; DatabaseServicePrincipalName={value}" .
/Diagnostik: /d: {Sant|Falskt} Anger om diagnostikloggning ska skickas till konsolen. Standardvärdet är False.
/DiagnosticsFile: /df: {string} Anger en fil som ska lagra diagnostikloggar.
/DiagnosticsLevel: /dl {Ingen|Av|Kritisk|Fel|Varning|Information|Utförlig} Anger nivåerna för spårningsmeddelanden som har filtrerats till diagnostikfilen
/DiagnosticsPackageFile: /dpf {string} Anger en fil som ska lagra diagnostikpaketet.
/MaxParallelism: /mp: {int} Anger graden av parallellitet för samtidiga åtgärder som körs mot en databas. Standardvärdet är 8.
/ModelFilePath: /mfp: {string} Anger filsökvägen för att åsidosätta model.xml i källfilen. Användning av den här inställningen kan leda till distributionsfel och/eller oavsiktlig dataförlust. Den här inställningen är endast avsedd för användning vid felsökning av problem med publicering, import eller skriptgenerering.
/Egenskaper: /p: {PropertyName}={Value} Anger ett namnvärdepar för en åtgärdsspecifik egenskap. {PropertyName}={Value}.
/Quiet: /q: {Sant|Falskt} Anger om detaljerad feedback utelämnas. Standardvärdet är Falskt.
/SourceFile: /sf: {string} Anger en källfil som ska användas som åtgärdskälla från lokal lagring. Om den här parametern används ska ingen annan källparameter vara giltig.
/TargetConnectionString: /tcs: {string} Anger en giltig SQL Server/Azure-anslutningssträng till måldatabasen. Om den här parametern anges ska den användas uteslutande framför alla andra målparametrar.
/TargetDatabaseName: /tdn: {string} Anger ett alternativt namn på databasen som ska användas i SqlPackage-åtgärden.
/TargetEncryptConnection: /Tec: {Valfritt|Obligatoriskt|Strikt|Sant|Falskt} Anger om SQL-kryptering ska användas för måldatabasanslutningen. Standardvärdet är Sant.
/TargetHostNameInCertificate: /etnisk: {string} Anger det värde som används för att verifiera sql Server TLS/SSL-målcertifikatet när kommunikationsskiktet krypteras med hjälp av TLS.
/TargetPassword: /tp: {string} För SQL Server Auth-scenarier definierar lösenordet som ska användas för att komma åt måldatabasen.
/TargetServerName: /tsn: {string} Definierar namnet på servern som är värd för måldatabasen.
/TargetTimeout: /Tt: {int} Anger tidsgränsen för att upprätta en anslutning till måldatabasen på några sekunder. För Microsoft Entra-ID rekommenderar vi att det här värdet är större än eller lika med 30 sekunder.
/TargetTrustServerCertificate: /ttsc: {Sant|Falskt} Anger om du vill använda TLS för att kryptera måldatabasanslutningen och kringgå att gå igenom certifikatkedjan för att verifiera förtroende. Standardvärdet är False.
/TargetUser: /tu: {string} För SQL Server-autentiseringsscenarier definierar SQL Server-användaren att använda för att komma åt måldatabasen.
/TenantId: /tid: {string} Representerar Microsoft Entra-klientorganisations-ID eller domännamn. Det här alternativet krävs för att stödja gäst- eller importerade Microsoft Entra-användare samt Microsoft-konton som outlook.com, hotmail.com eller live.com. Om den här parametern utelämnas används standardklient-ID för Microsoft Entra-ID, förutsatt att den autentiserade användaren är en intern användare för denna AD. I det här fallet stöds dock inte gäst- eller importerade användare och/eller Microsoft-konton som finns i det här Microsoft Entra-ID:t och åtgärden misslyckas.
Mer information finns i Universell autentisering med SQL Database och Azure Synapse Analytics (SSMS-stöd för MFA).
/ThreadMaxStackSize: /tmss: {int} Anger den maximala storleken i megabyte för den tråd som kör åtgärden SqlPackage. Det här alternativet bör endast användas när du stöter på stacköverflödesfel som inträffar vid parsning av mycket stora Transact-SQL-instruktioner.
/UniversalAuthentication: /Ua: {Sant|Falskt} Anger om universell autentisering ska användas. När värdet är True aktiveras det interaktiva autentiseringsprotokollet med stöd för MFA. Det här alternativet kan också användas för Microsoft Entra-autentisering utan MFA, med hjälp av ett interaktivt protokoll som kräver att användaren anger användarnamn och lösenord eller integrerad autentisering (Windows-autentiseringsuppgifter). När /UniversalAuthentication har angetts till True kan ingen Microsoft Entra-autentisering anges i SourceConnectionString (/scs). När /UniversalAuthentication är inställt på False måste Microsoft Entra-autentisering anges i SourceConnectionString (/scs).
Mer information finns i Universell autentisering med SQL Database och Azure Synapse Analytics (SSMS-stöd för MFA).

Egenskaper som är specifika för importåtgärden

Fastighet Värde Beskrivning
/p: CommandTimeout=(INT32 '60') Anger maxtiden för kommandot i sekunder när du exekverar frågor mot SQL Server.
/p: DatabaseEdition=({ Basic | Standard | Premium | DataWarehouse | GeneralPurpose | BusinessCritical | Hyperskala | Default } 'Default') Definierar utgåvan av en Azure SQL Database. Se Tjänstnivåer för Azure SQL Database.
/p: DatabaseLockTimeout=(INT32 '60') Anger tidsgränsen för databaslåsning i sekunder när frågor mot SQLServer körs. Använd -1 för att vänta på obestämd tid.
/p: DatabaseMaximumSize=(INT32 '0') Definierar den maximala storleken i GB för en Azure SQL Database.
/p: DatabaseServiceObjective=(STRING) Definierar prestandanivån för en Azure SQL Database, till exempel "P0" eller "S1".
/p: DisableIndexesForDataPhase=(BOOLEAN 'Sant') När sant (standard) inaktiverar index innan data importeras. När det är falskt återskapas inte index.
/p: DisableParallelismForEnablingIndexes=(BOOLEAN 'Falsk') Använder inte parallellitet vid återskapande av index vid import av data till SQL Server.
/p: HashObjectNamesInLogs=(BOOLEAN 'Falsk') Anger om du vill ersätta alla objektnamn i loggar med ett slumpmässigt hash-värde.
/p: ImportContributorArguments=(STRING) Anger distributionsdeltagarens argument för distributionsdeltagare. Den här egenskapen ska vara en semikolonavgränsad lista med värden.
/p: ImportContributorPaths=(STRING) Anger sökvägar för att läsa in ytterligare importkomponenter. Den här egenskapen ska vara en semikolonavgränsad lista med värden.
/p: ImportContributors=(STRING) Anger distributionsdeltagare, som ska köras när bacpac importeras. Den här egenskapen bör vara en semikolonavgränsad lista över fullständigt kvalificerade build-deltagarnamn eller ID:n.
/p: LongRunningCommandTimeout=(INT32 '0') Anger tidsgränsen för långvariga kommandon i sekunder vid exekvering av frågor mot SQL Server. Använd 0 för att vänta på obestämd tid.
/p: PreserveIdentityLastValues=(BOOL 'Falsk') Anger om de sista värdena för identitetskolumner ska bevaras under distributionen.
/p: RebuildIndexesOfflineForDataPhase=(BOOLEAN 'False') När det är sant återskapas index offline efter att data har importerats till SQL Server.
/p: Storage=({File|Minne}) Anger hur element lagras när du skapar databasmodellen. Av prestandaskäl är standardvärdet InMemory. För stora databaser krävs filstödd lagring.

Nästa steg