Dela via


ALTER DATABASE (Transact-SQL)

Ändrar vissa konfigurationsalternativ för en databas.

Den här artikeln innehåller syntax, argument, kommentarer, behörigheter och exempel för vilken SQL-produkt du väljer.

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

Välj en produkt

På följande rad väljer du det produktnamn som du är intresserad av och endast den produktinformationen visas.

* SQL Server *  

 

Översikt: SQL Server

I SQL Server ändrar den här instruktionen en databas eller de filer och filgrupper som är associerade med databasen. ALTER DATABASE lägger till eller tar bort filer och filgrupper från en databas, ändrar attributen för en databas eller dess filer och filgrupper, ändrar databassortering och anger databasalternativ. Det går inte att ändra databasögonblicksbilder. Om du vill ändra databasalternativ som är associerade med replikering använder du sp_replicationdboption.

På grund av dess längd är ALTER DATABASE syntaxen uppdelad i flera artiklar.

Artikel Beskrivning
ALTER DATABASE Den aktuella artikeln innehåller syntaxen och relaterad information för att ändra namnet och sortering av en databas.
ALTER DATABASE-fil- och filgruppsalternativ Innehåller syntax och relaterad information för att lägga till och ta bort filer och filgrupper från en databas och för att ändra attributen för filerna och filgrupperna.
ALTER DATABASE SET-alternativ Innehåller syntax och relaterad information för att ändra attributen för en databas med hjälp av SET-alternativen för ALTER DATABASE.
ÄNDRA databasspegling Innehåller syntaxen och relaterad information för SET-alternativen för ALTER DATABASE som är relaterade till databasspegling.
ALTER DATABASE SET HADR Innehåller syntaxen och relaterad information för alternativen AlwaysOn-tillgänglighetsgrupper i ALTER DATABASE för att konfigurera en sekundär databas på en sekundär replik av en AlwaysOn-tillgänglighetsgrupp.
ALTER DATABASE-kompatibilitetsnivå Innehåller syntaxen och relaterad information för SET-alternativen för ALTER DATABASE som är relaterade till databaskompatibilitetsnivåer.
ÄNDRA FÖR DATABASOMFATTNING Innehåller syntaxen för databasomfattande konfigurationer som används för enskilda inställningar på databasnivå, till exempel frågeoptimering och frågekörningsrelaterade beteenden.

Syntax

-- SQL Server Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>
  | SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<file_and_filegroup_options>::=
  <add_or_modify_files>::=
  <filespec>::=
  <add_or_modify_filegroups>::=
  <filegroup_updatability_option>::=

<option_spec>::=
{
  | <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | <FILESTREAM_options>
  | <HADR_options>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <termination>
  | <temporal_history_retention>
  | <data_retention_policy>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }
}

Argument

database_name

Är namnet på databasen som ska ändras.

Not

Det här alternativet är inte tillgängligt i en innesluten databas.

STRÖM
gäller för: SQL Server 2012 (11.x) och senare.

Anger att den aktuella databasen som används ska ändras.

ÄNDRA NAMN = new_database_name

Byter namn på databasen med namnet som anges som new_database_name.

SORTERA COLLATION_NAME

Anger sortering för databasen. collation_name kan vara antingen ett Windows-sorteringsnamn eller ett SQL-sorteringsnamn. Om den inte anges tilldelas databasen sortering av instansen av SQL Server.

Not

Sortering kan inte ändras när databasen har skapats i Azure SQL Database.

När du skapar databaser med andra än standardsortering respekterar data i databasen alltid den angivna sorteringen. När du skapar en innesluten databas för SQL Server underhålls den interna kataloginformationen med sql Server-standardsortering, Latin1_General_100_CI_AS_WS_KS_SC.

Mer information om Windows- och SQL-sorteringsnamnen finns i COLLATE.

<delayed_durability_option> ::=

gäller för: SQL Server 2014 (12.x) och senare.

Mer information finns i ALTER DATABASE SET-alternativ och Control Transaction Durability.

<file_and_filegroup_options>::=

Mer information finns i ALTER DATABASE-fil- och filgruppsalternativ.

Anmärkningar

Om du vill ta bort en databas använder du DROP DATABASE.

Om du vill minska storleken på en databas använder du DBCC SHRINKDATABASE.

Instruktionen ALTER DATABASE måste köras i automatiskt incheckningsläge (standardläget för transaktionshantering) och tillåts inte i en explicit eller implicit transaktion.

Tillståndet för en databasfil (till exempel online eller offline) bibehålls oberoende av databasens tillstånd. Mer information finns i filtillstånd. Tillståndet för filerna i en filgrupp avgör tillgängligheten för hela filgruppen. För att en filgrupp ska vara tillgänglig måste alla filer i filgruppen vara online. Om en filgrupp är offline misslyckas alla försök att komma åt filgruppen med en SQL-instruktion med ett fel. När du skapar frågeplaner för SELECT-instruktioner undviker frågeoptimeraren icke-grupperade index och indexerade vyer som finns i offlinefilgrupper. Detta gör att dessa instruktioner kan lyckas. Men om offlinefilgruppen innehåller heap- eller klustrat index för måltabellen misslyckas SELECT-uttrycken. Dessutom misslyckas alla INSERT, UPDATEeller DELETE-instruktion som ändrar en tabell med ett index i en offlinefilgrupp.

När en databas är i återställningstillståndet misslyckas de flesta ALTER DATABASE-instruktioner. Undantaget är att ställa in alternativ för databasspegling. En databas kan vara i återställningstillståndet under en aktiv återställningsåtgärd eller när en återställningsåtgärd för en databas eller loggfil misslyckas på grund av en skadad säkerhetskopia.

Plancachen för SQL Server-instansen rensas genom att något av följande alternativ anges.

  • KOLLATIONERA
  • ÄNDRA STANDARD FÖR FILEGROUP
  • ÄNDRA FILEGROUP-READ_ONLY
  • ÄNDRA FILEGROUP-READ_WRITE
  • MODIFY_NAME
  • OFFLINE
  • UPPKOPPLAD
  • PAGE_VERIFY
  • READ_ONLY
  • READ_WRITE

Om du rensar plancachen blir det en omkompilering av alla efterföljande körningsplaner och kan orsaka en plötslig, tillfällig minskning av frågeprestanda. För varje rensat cachelager i plancachen innehåller SQL Server-felloggen följande informationsmeddelande: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Det här meddelandet loggas var femte minut så länge cacheminnet rensas inom det tidsintervallet.

Plancachen töms också i följande scenarier:

  • En databas har alternativet AUTO_CLOSE databas inställt på PÅ. När ingen användaranslutning refererar till eller använder databasen försöker bakgrundsaktiviteten stänga och stänga av databasen automatiskt.
  • Du kör flera frågor mot en databas som har standardalternativ. Sedan tas databasen bort.
  • En databasögonblicksbild för en källdatabas tas bort.
  • Du återskapar transaktionsloggen för en databas.
  • Du återställer en säkerhetskopia av databasen.
  • Du kopplar från en databas.

Ändra databassortering

Innan du tillämpar en annan sortering på en databas kontrollerar du att följande villkor är uppfyllda:

  • Du är den enda som för närvarande använder databasen.
  • Inget schemabundet objekt beror på databasens sortering.

Om följande objekt, som är beroende av databassortering, finns i databasen misslyckas ALTER DATABASE database_name COLLATE-instruktionen. SQL Server returnerar ett felmeddelande för varje objekt som blockerar åtgärden ALTER:

  • Användardefinierade funktioner och vyer som skapats med SCHEMABINDING
  • Beräknade kolumner
  • CHECK-begränsningar
  • Tabellvärdesfunktioner som returnerar tabeller med teckenkolumner med sorteringar som ärvts från standarddatabassortering

Beroendeinformation för icke-schemabundna entiteter uppdateras automatiskt när databassortering ändras.

Om du ändrar databassortering skapas inte dubbletter bland eventuella systemnamn för databasobjekten. Om dubbletter av namn beror på den ändrade sorteringen kan följande namnområden orsaka fel i en databassorteringsändring:

  • Objektnamn som en procedur, tabell, utlösare eller vy
  • Schemanamn
  • Huvudnamn, till exempel en grupp, roll eller användare
  • Skalära namn som system och användardefinierade typer
  • Katalognamn i fulltext
  • Kolumn- eller parameternamn i ett objekt
  • Indexnamn i en tabell

Dubblettnamn som beror på den nya sorteringen gör att ändringsåtgärden misslyckas och SQL Server returnerar ett felmeddelande som anger namnområdet där dubbletten hittades.

Visa databasinformation

Du kan använda katalogvyer, systemfunktioner och systemlagringsprocedurer för att returnera information om databaser, filer och filgrupper.

Behörigheter

Kräver ALTER behörighet för databasen.

Exempel

A. Ändra namnet på en databas

I följande exempel ändras namnet på AdventureWorks2022-databasen till Northwind.

USE master;
GO
ALTER DATABASE AdventureWorks2022
Modify Name = Northwind ;
GO

B. Ändra sortering av en databas

I följande exempel skapas en databas med namnet testdb med SQL_Latin1_General_CP1_CI_AS sortering och ändrar sedan sortering av testdb-databasen till COLLATE French_CI_AI.

gäller för: SQL Server 2008 (10.0.x) och senare.

USE master;
GO

CREATE DATABASE testdb
COLLATE SQL_Latin1_General_CP1_CI_AS ;
GO

ALTER DATABASE testDB
COLLATE French_CI_AI ;
GO

* SQL Database *  

 

Översikt: SQL Database

I Azure SQL Database använder du den här instruktionen för att ändra en databas. Använd den här instruktionen om du vill ändra namnet på en databas, ändra databasens utgåva och tjänstmål, koppla eller ta bort databasen till eller från en elastisk pool, ange databasalternativ, lägga till eller ta bort databasen som sekundär i en geo-replikeringsrelation och ange databasens kompatibilitetsnivå.

På grund av dess längd är ALTER DATABASE syntaxen uppdelad i flera artiklar.

ÄNDRA DATABAS
Den aktuella artikeln innehåller syntaxen och relaterad information för att ändra namnet och andra inställningar för en databas.

ÄNDRA DATABASUPPSÄTTNINGsalternativ
Innehåller syntax och relaterad information för att ändra attributen för en databas med hjälp av SET-alternativen för ALTER DATABASE.

ALTER DATABASE Compatibility Level
Innehåller syntaxen och relaterad information för SET-alternativen för ALTER DATABASE som är relaterade till databaskompatibilitetsnivåer.

Syntax

-- Azure SQL Database Syntax
ALTER DATABASE { database_name | CURRENT }
{
    MODIFY NAME = new_database_name
  | MODIFY ( <edition_options> [, ... n] )
  | MODIFY BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
  | SET { <option_spec> [ ,... n ] WITH <termination>}
  | ADD SECONDARY ON SERVER <partner_server_name>
    [WITH ( <add-secondary-option>::=[, ... n] ) ]
  | REMOVE SECONDARY ON SERVER <partner_server_name>
  | FAILOVER
  | FORCE_FAILOVER_ALLOW_DATA_LOSS
}
[;]

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 250 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale'}
  | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL (name = <elastic_pool_name>) }
       }
}

<add-secondary-option> ::=
   {
      ALLOW_CONNECTIONS = { ALL | NO }
     | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' }
     | SERVICE_OBJECTIVE =
       { <service-objective>
       | { ELASTIC_POOL ( name = <elastic_pool_name>) }
       | DATABASE_NAME = <target_database_name>
       | SECONDARY_TYPE = { GEO | NAMED }
       }
   }

<service-objective> ::={ 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'BC_DC_n'
      | 'BC_Gen5_n' 
      | 'BC_M_n' 
      | 'GP_DC_n'
      | 'GP_Fsv2_n' 
      | 'GP_Gen5_n' 
      | 'GP_S_Gen5_n' 
      | 'HS_DC_n'
      | 'HS_Gen5_n'
      | 'HS_S_Gen5_n'
      | 'HS_MOPRMS_n' 
      | 'HS_PRMS_n' 
      | { ELASTIC_POOL(name = <elastic_pool_name>) }
      }

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
  | <compatibility_level>
    { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}

Argument

database_name

Är namnet på databasen som ska ändras.

STRÖM
Anger att den aktuella databasen som används ska ändras.

ÄNDRA NAMN = new_database_name

Byter namn på databasen med namnet som anges som new_database_name. I följande exempel ändras namnet på en databas db1 till db2:

ALTER DATABASE db1
    MODIFY Name = db2 ;

MODIFY (EDITION = ['Basic' | "Standard" | 'Premium' |' GeneralPurpose' | "BusinessCritical" | "Hyperskala])

Ändrar tjänstnivån för databasen.

I följande exempel ändras utgåvan till Premium:

ALTER DATABASE current
    MODIFY (EDITION = 'Premium');

Viktig

DET går inte att ändra utgåva om egenskapen MAXSIZE för databasen har angetts till ett värde utanför det giltiga intervall som stöds av den utgåvan.

ÄNDRA BACKUP_STORAGE_REDUNDANCY = ['LOCAL' | 'ZONE' | "GEO"]

Ändrar lagringsredundansen för återställningssäkerhetskopior vid tidpunkt och långsiktiga kvarhållningssäkerhetskopior (om de konfigureras) för databasen. Ändringarna tillämpas på alla framtida säkerhetskopior som görs. Befintliga säkerhetskopior fortsätter att använda den tidigare inställningen.

Om du vill framtvinga datahemvist när du skapar en databas med hjälp av T-SQL använder du LOCAL eller ZONE som indata till parametern BACKUP_STORAGE_REDUNDANCY.

ÄNDRA (MAXSIZE = [100 MB | 500 MB | 1 | 1024...4096] GB)

Anger den maximala storleken på databasen. Den maximala storleken måste överensstämma med den giltiga uppsättningen värden för databasens edition-egenskap. Om du ändrar databasens maximala storlek kan databasens VERSION ändras.

Not

Argumentet MAXSIZE gäller inte för enskilda databaser på tjänstnivån Hyperskala. Databaser på en hyperskala-tjänstnivå växer efter behov, upp till 128 TB. SQL Database-tjänsten lägger till lagring automatiskt – du behöver inte ange en maximal storlek.

DTU-modell

MAXSIZE Grundläggande S0-S2 S3-S12 P1-P6 P11-P15
100 MB Ja Ja Ja Ja Ja
250 MB Ja Ja Ja Ja Ja
500 MB Ja Ja Ja Ja Ja
1 GB Ja Ja Ja Ja Ja
2 GB Ja (D) Ja Ja Ja Ja
5 GB Ej tillämpligt Ja Ja Ja Ja
10 GB Ej tillämpligt Ja Ja Ja Ja
20 GB Ej tillämpligt Ja Ja Ja Ja
30 GB Ej tillämpligt Ja Ja Ja Ja
40 GB Ej tillämpligt Ja Ja Ja Ja
50 GB Ej tillämpligt Ja Ja Ja Ja
100 GB Ej tillämpligt Ja Ja Ja Ja
150 GB Ej tillämpligt Ja Ja Ja Ja
200 GB Ej tillämpligt Ja Ja Ja Ja
250 GB Ej tillämpligt Ja (D) Ja (D) Ja Ja
300 GB Ej tillämpligt Ja Ja Ja Ja
400 GB Ej tillämpligt Ja Ja Ja Ja
500 GB Ej tillämpligt Ja Ja Ja (D) Ja
750 GB Ej tillämpligt Ja Ja Ja Ja
1 024 GB Ej tillämpligt Ja Ja Ja Ja (D)
Från 1 024 GB upp till 4 096 GB i steg om 256 GB 1 Ej tillämpligt Ej tillämpligt Ej tillämpligt Ej tillämpligt Ja

1 P11 och P15 tillåter MAXSIZE upp till 4 TB med 1 024 GB som standardstorlek. P11 och P15 kan använda upp till 4 TB lagringsutrymme utan extra kostnad. På Premium-nivån är MAXSIZE större än 1 TB för närvarande tillgängligt i följande regioner: USA, östra 2, USA, västra, US Gov Virginia, Europa, västra, Tyskland, centrala, Sydostasien, Japan, östra, Australien, östra, Kanada, centrala och Kanada, östra. Mer information om resursbegränsningar för DTU-modellen finns i DTU-resursbegränsningar.

MAXSIZE-värdet för DTU-modellen, om det anges, måste vara ett giltigt värde som visas i föregående tabell för den angivna tjänstnivån.

För begränsningar som maximal datastorlek och tempdb storlek i köpmodellen för virtuella kärnor, se artiklarna för resursgränser för enskilda databaser eller resursgränser för elastiska pooler.

Om inget MAXSIZEvärde anges när du använder modellen för virtuell kärna är standardvärdet 32 GB. Mer information om resursbegränsningar för vCore-modellen finns i resursbegränsningar för virtuella kärnor.

Följande regler gäller för ARGUMENTEN MAXSIZE och EDITION:

  • Om EDITION har angetts men MAXSIZE inte har angetts används standardvärdet för utgåvan. Till exempel är EDITION inställt på Standard och MAXSIZE har inte angetts, sedan anges MAXSIZE automatiskt till 250 MB.
  • Om varken MAXSIZE eller EDITION har angetts är EDITION inställt på Generell användning och MAXSIZE är inställt på 32 GB.

ÄNDRA (SERVICE_OBJECTIVE = <tjänstmål>)

Anger beräkningsstorlek och tjänstmål.

SERVICE_OBJECTIVE

Anger beräkningsstorleken (kallas även servicenivåmål eller SLO).

  • För DTU-inköpsmodell: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15. Se resursgränser för enskilda DTU-databaser eller resursgränser för elastiska DTU-pooler för att hitta antalet DTU som tilldelats varje beräkningsstorlek.
  • För köpmodellen för virtuell kärna väljer du nivån och anger antalet virtuella kärnor från en förinställd lista med värden, där antalet virtuella kärnor n. Se resursgränser för enskilda virtuella kärnor eller resursgränser för elastiska pooler med virtuella kärnor.
    • Till exempel:
    • GP_Gen5_8 för generell användning, etablerad beräkning, Standard-serien (Gen5), 8 virtuella kärnor.
    • GP_S_Gen5_8 för generell användning, serverlös beräkning, Standard-serien (Gen5), 8 virtuella kärnor.
    • HS_Gen5_8 för Hyperskala, etablerad beräkning, Standard-serien (Gen5), 8 virtuella kärnor.
    • HS_S_Gen5_8 för Hyperskala, serverlös beräkning, Standard-serien (Gen5), 8 virtuella kärnor.

Följande exempel ändrar till exempel tjänstmålet för en Premium-nivådatabas i DTU-inköpsmodellen för att P6:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'P6');

Följande exempel ändrar till exempel tjänstmålet för en etablerad beräkningsdatabas i köpmodellen för virtuella kärnor till GP_Gen5_8:

ALTER DATABASE <database_name>
    MODIFY (SERVICE_OBJECTIVE = 'GP_Gen5_8');

DATABASE_NAME

Endast för Azure SQL Database Hyperscale. Det databasnamn som ska skapas. Används endast av Azure SQL Database Hyperskala med namnet replicas, när SECONDARY_TYPE = NAMED. Mer information finns i sekundära hyperskalarepliker.

SECONDARY_TYPE

Endast för Azure SQL Database Hyperscale. GEO- anger en geo-replik anger NAMED en namngiven replik. Standardvärdet är GEO-. Mer information finns i sekundära hyperskalarepliker.

Beskrivningar av tjänstmål och mer information om kombinationer av storlek, utgåvor och tjänstmål finns i Jämför virtuella kärnor och DTU-baserade inköpsmodeller för Azure SQL Database, DTU-resursgränser och resursgränser för virtuella kärnor. Stöd för PRS-tjänstmål har tagits bort.

När SERVICE_OBJECTIVE inte anges skapas den sekundära databasen på samma tjänstnivå som den primära databasen. När SERVICE_OBJECTIVE anges skapas den sekundära databasen på den angivna nivån. Den angivna SERVICE_OBJECTIVE måste ligga inom samma utgåva som källan. Du kan till exempel inte ange S0 om utgåvan är premium.

ÄNDRA (SERVICE_OBJECTIVE = ELASTIC_POOL (namn = <elastic_pool_name>)

Om du vill lägga till en befintlig databas i en elastisk pool anger du databasens SERVICE_OBJECTIVE till ELASTIC_POOL och anger namnet på den elastiska poolen. Du kan också använda det här alternativet för att ändra databasen till en annan elastisk pool på samma server. Mer information finns i elastiska pooler som hjälper dig att hantera och skala flera databaser i Azure SQL Database. Om du vill ta bort en databas från en elastisk pool använder du ALTER DATABASE för att ange SERVICE_OBJECTIVE till en enda databasberäkningsstorlek (tjänstmål).

Not

Databaser på tjänstnivån Hyperskala kan inte läggas till i en elastisk pool.

LÄGG TILL SEKUNDÄR PÅ SERVER <PARTNER_SERVER_NAME>

Skapar en sekundär geo-replikeringsdatabas med samma namn på en partnerserver, vilket gör den lokala databasen till en primär geo-replikering och börjar asynkront replikera data från den primära till den nya sekundära. Om det redan finns en databas med samma namn på den sekundära filen misslyckas kommandot. Kommandot körs på den master databasen på servern som är värd för den lokala databasen som blir den primära.

Viktig

Som standard skapas den sekundära databasen med samma redundans för säkerhetskopieringslagring som den primära databasen eller källdatabasen. Det går inte att ändra redundansen för säkerhetskopieringslagring när du skapar den sekundära lagringen via T-SQL.

MED ALLOW_CONNECTIONS { ALLA | NO }

När ALLOW_CONNECTIONS inte har angetts är den inställd på ALLA som standard. Om den är INSTÄLLD PÅ ALLA är det en skrivskyddad databas som tillåter alla inloggningar med rätt behörighet att ansluta.

ELASTIC_POOL (namn = <elastic_pool_name>)

När ELASTIC_POOL inte har angetts skapas inte den sekundära databasen i en elastisk pool. När ELASTIC_POOL anges skapas den sekundära databasen i den angivna poolen.

Viktig

Användaren som kör kommandot ADD SECONDARY måste vara DBManager på den primära servern, ha db_owner medlemskap i den lokala databasen och DBManager på den sekundära servern. Klientens IP-adress måste läggas till i listan över tillåtna under brandväggsregler för både de primära och sekundära servrarna. Vid olika klient-IP-adresser måste exakt samma klient-IP-adress som har lagts till på den primära servern också läggas till i den sekundära. Det här är ett obligatoriskt steg innan du kör kommandot LÄGG TILL SEKUNDÄR för att initiera geo-replikering.

TA BORT SEKUNDÄR PÅ SERVER <PARTNER_SERVER_NAME>

Tar bort den angivna geo-replikerade sekundära databasen på den angivna servern. Kommandot körs på master-databasen på servern som är värd för den primära databasen.

Viktig

Användaren som kör kommandot REMOVE SECONDARY måste vara DBManager på den primära servern.

REDUNDANS

Höjer upp den sekundära databasen i geo-replikeringskopplingen där kommandot körs för att bli den primära och degraderar den aktuella primära databasen för att bli den nya sekundära. Som en del av den här processen växlas geo-replikeringsläget tillfälligt från asynkront läge till synkront läge. Under redundansväxlingen:

  1. Den primära slutar att ta nya transaktioner.
  2. Alla utestående transaktioner rensas till den sekundära.
  3. Den sekundära blir den primära och börjar asynkron geo-replikering med den gamla primära/nya sekundära.

Den här sekvensen säkerställer att ingen dataförlust sker. Perioden då båda databaserna inte är tillgängliga är i storleksordningen 0–25 sekunder medan rollerna växlas. Den totala åtgärden bör inte ta längre tid än cirka en minut. Om den primära databasen inte är tillgänglig när det här kommandot utfärdas misslyckas kommandot med ett felmeddelande som anger att den primära databasen inte är tillgänglig. Om redundansväxlingen inte slutförs och verkar ha fastnat kan du använda kommandot force failover och acceptera dataförlust . Om du behöver återställa förlorade data anropar du devops (CSS) för att återställa förlorade data.

Viktig

Användaren som kör redundanskommandot måste vara DBManager på både den primära servern och den sekundära servern.

FORCE_FAILOVER_ALLOW_DATA_LOSS

Höjer upp den sekundära databasen i geo-replikeringskopplingen där kommandot körs för att bli den primära och degraderar den aktuella primära databasen för att bli den nya sekundära. Använd endast det här kommandot när den aktuella primära filen inte längre är tillgänglig. Den är endast utformad för haveriberedskap när det är viktigt att återställa tillgängligheten och viss dataförlust är acceptabel.

Under en tvingad redundansväxling:

  1. Den angivna sekundära databasen blir omedelbart den primära databasen och börjar acceptera nya transaktioner.
  2. När den ursprungliga primära kan återansluta till den nya primära, tas en inkrementell säkerhetskopia på den ursprungliga primära och den ursprungliga primära blir en ny sekundär.
  3. Om du vill återställa data från den här inkrementella säkerhetskopian på den gamla primära filen använder användaren devops/CSS.
  4. Om det finns ytterligare sekundärfiler konfigureras de automatiskt om så att de blir sekundärfiler för den nya primära. Den här processen är asynkron och det kan uppstå en fördröjning tills processen har slutförts. Tills omkonfigurationen har slutförts fortsätter sekundärerna att vara sekundärfiler för den gamla primära.

Viktig

Användaren som kör kommandot FORCE_FAILOVER_ALLOW_DATA_LOSS måste tillhöra den dbmanager rollen på både den primära servern och den sekundära servern.

Anmärkningar

Om du vill ta bort en databas använder du DROP DATABASE. Om du vill minska storleken på en databas använder du DBCC SHRINKDATABASE.

Instruktionen ALTER DATABASE måste köras i automatiskt incheckningsläge (standardläget för transaktionshantering) och tillåts inte i en explicit eller implicit transaktion.

Om du rensar plancachen blir det en omkompilering av alla efterföljande körningsplaner och kan orsaka en plötslig, tillfällig minskning av frågeprestanda. För varje rensat cachelager i plancachen innehåller SQL Server-felloggen följande informationsmeddelande: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Det här meddelandet loggas var femte minut så länge cacheminnet rensas inom det tidsintervallet.

Procedurens cache rensas också i följande scenario: Du kör flera frågor mot en databas som har standardalternativ. Sedan tas databasen bort.

Visa databasinformation

Du kan använda katalogvyer, systemfunktioner och systemlagringsprocedurer för att returnera information om databaser, filer och filgrupper.

Behörigheter

Om du vill ändra en databas måste en inloggning antingen vara serveradministratörsinloggningen (som skapades när den logiska Azure SQL Database-servern etablerades), Microsoft Entra-administratören för servern, en medlem av databasrollen dbmanager i master, en medlem av db_owner databasrollen i den aktuella databasen eller dbo av databasen. Microsoft Entra ID är (tidigare Azure Active Directory).

Om du vill skala databaser via T-SQL krävs ALTER DATABASE-behörigheter. Om du vill skala databaser via Azure-portalen, PowerShell, Azure CLI eller REST API krävs Azure RBAC-behörigheter, särskilt rollen Deltagare, SQL DB-deltagare eller AZURE RBAC-roll för SQL Server-deltagare. Mer information finns i inbyggda Azure-roller.

Exempel

A. Kontrollera versionsalternativen och ändra dem

Anger en utgåva och maximal storlek för databas db1:

SELECT Edition = DATABASEPROPERTYEX('db1', 'EDITION'),
        ServiceObjective = DATABASEPROPERTYEX('db1', 'ServiceObjective'),
        MaxSizeInBytes =  DATABASEPROPERTYEX('db1', 'MaxSizeInBytes');

ALTER DATABASE [db1] MODIFY (EDITION = 'Premium', MAXSIZE = 1024 GB, SERVICE_OBJECTIVE = 'P15');

B. Flytta en databas till en annan elastisk pool

Flyttar en befintlig databas till en pool med namnet pool1:

ALTER DATABASE db1
MODIFY ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = pool1 ) ) ;

C. Lägg till en Geo-Replication sekundär

Skapar en läsbar sekundär databas db1 på server secondaryserver av db1 på den lokala servern.

ALTER DATABASE db1
ADD SECONDARY ON SERVER secondaryserver
WITH ( ALLOW_CONNECTIONS = ALL );

D. Ta bort en Geo-Replication sekundär

Tar bort den sekundära databasen db1 på servern secondaryserver.

ALTER DATABASE db1
REMOVE SECONDARY ON SERVER testsecondaryserver;

E. Redundansväxling till en Geo-Replication sekundär

Höjer upp en sekundär databas db1 på servern secondaryserver för att bli den nya primära databasen när den körs på servern secondaryserver.

ALTER DATABASE db1 FAILOVER;

F. Tvinga redundans till en Geo-Replication sekundär med dataförlust

Tvingar en sekundär databas db1 på servern secondaryserver att bli den nya primära databasen när den körs på servern secondaryserveri händelse av att den primära servern blir otillgänglig. Det här alternativet kan medföra dataförlust.

ALTER DATABASE db1 FORCE_FAILOVER_ALLOW_DATA_LOSS;

G. Uppdatera en enkel databas till tjänstnivå S0 (Standard edition, prestandanivå 0)

Uppdaterar en enskild databas till Standard-utgåvan (tjänstnivå) med en beräkningsstorlek (tjänstmål) på S0 och en maximal storlek på 250 GB.

ALTER DATABASE [db1] MODIFY (EDITION = 'Standard', MAXSIZE = 250 GB, SERVICE_OBJECTIVE = 'S0');

H. Uppdatera redundansen för säkerhetskopieringslagring för en databas

Uppdaterar redundansen för säkerhetskopiering av en databas till zonredundant. Alla framtida säkerhetskopior av den här databasen använder den nya inställningen. Detta omfattar återställningssäkerhetskopior vid tidpunkt och långsiktiga kvarhållningssäkerhetskopior (om de har konfigurerats).

ALTER DATABASE db1 MODIFY BACKUP_STORAGE_REDUNDANCY = 'ZONE';

* SQL Managed Instance *  

 

Översikt: Azure SQL Managed Instance

I Azure SQL Managed Instance använder du den här instruktionen för att ange databasalternativ.

På grund av dess längd är ALTER DATABASE syntaxen uppdelad i flera artiklar.

Artikel Beskrivning
ALTER DATABASE
Den aktuella artikeln innehåller syntax och relaterad information för att ange fil- och filgruppsalternativ, för att ange databasalternativ och för att ange databaskompatibilitetsnivå.
ALTER DATABASE-fil- och filgruppsalternativ
Innehåller syntax och relaterad information för att lägga till och ta bort filer och filgrupper från en databas och för att ändra attributen för filerna och filgrupperna.
ÄNDRA DATABASUPPSÄTTNINGsalternativ
Innehåller syntax och relaterad information för att ändra attributen för en databas med hjälp av SET-alternativen för ALTER DATABASE.
ALTER DATABASE Compatibility Level
Innehåller syntaxen och relaterad information för SET-alternativen för ALTER DATABASE som är relaterade till databaskompatibilitetsnivåer.

Syntax

-- Azure SQL Managed Instance syntax  
ALTER DATABASE { database_name | CURRENT }  
{
    MODIFY NAME = new_database_name
  | COLLATE collation_name
  | <file_and_filegroup_options>  
  | SET <option_spec> [ ,...n ]  
}  
[;]

<file_and_filegroup_options>::=  
  <add_or_modify_files>::=  
  <filespec>::=
  <add_or_modify_filegroups>::=  
  <filegroup_updatability_option>::=  

<option_spec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>  
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <temporal_history_retention>
  | <compatibility_level>
      { 160 | 150 | 140 | 130 | 120 | 110 | 100 | 90 }

}  

Argument

database_name

Är namnet på databasen som ska ändras.

STRÖM
Anger att den aktuella databasen som används ska ändras.

Anmärkningar

  • Om du vill ta bort en databas använder du DROP DATABASE.

  • Om du vill minska storleken på en databas använder du DBCC SHRINKDATABASE.

  • Instruktionen ALTER DATABASE måste köras i automatiskt incheckningsläge (standardläget för transaktionshantering) och tillåts inte i en explicit eller implicit transaktion.

  • Plancachen för Azure SQL Managed Instance rensas genom att något av följande alternativ anges.

    • KOLLATIONERA

    • ÄNDRA STANDARD FÖR FILEGROUP

    • ÄNDRA FILEGROUP-READ_ONLY

    • ÄNDRA FILEGROUP-READ_WRITE

    • ÄNDRA NAMN

      Om du rensar plancachen blir det en omkompilering av alla efterföljande körningsplaner och kan orsaka en plötslig, tillfällig minskning av frågeprestanda. För varje rensat cachelager i plancachen innehåller SQL Server-felloggen följande informationsmeddelande: SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations. Det här meddelandet loggas var femte minut så länge cacheminnet rensas inom det tidsintervallet. Plancachen töms också när flera frågor körs mot en databas som har standardalternativ. Sedan tas databasen bort.

  • Vissa ALTER DATABASE-instruktioner kräver exklusivt lås på en databas som ska köras. Det är därför de kan misslyckas när en annan aktiv process håller ett lås på databasen. Fel som rapporteras i ett fall som det här är Msg 5061, Level 16, State 1, Line 38 med meddelandet ALTER DATABASE failed because a lock could not be placed on database '<database name>'. Try again later. Detta är vanligtvis ett tillfälligt fel och för att lösa det, när alla lås på databasen har släppts, försök igen ALTER DATABASE-instruktionen som misslyckades. Systemvyn sys.dm_tran_locks innehåller information om aktiva lås. Om du vill kontrollera om det finns delade eller exklusiva lås på en databas använder du följande fråga.

    SELECT
        resource_type, resource_database_id, request_mode, request_type, request_status, request_session_id 
    FROM 
        sys.dm_tran_locks
    WHERE
        resource_database_id = DB_ID('testdb');
    

Visa databasinformation

Du kan använda katalogvyer, systemfunktioner och systemlagringsprocedurer för att returnera information om databaser, filer och filgrupper.

Behörigheter

Endast huvudinloggningen på servernivå (skapad av etableringsprocessen) eller medlemmar i dbcreator databasroll kan ändra en databas.

Viktig

Databasens ägare kan inte ändra databasen om de inte är medlemmar i den dbcreator rollen.

Exempel

I följande exempel visas hur du ställer in automatisk justering och hur du lägger till en fil i en databas i Azure SQL Managed Instance.

ALTER DATABASE WideWorldImporters
  SET AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = ON);

ALTER DATABASE WideWorldImporters
  ADD FILE (NAME = 'data_17');

* Azure Synapse
Analys *
 

 

Översikt: Azure Synapse Analytics

I Azure Synapse ändrar ALTER DATABASE vissa konfigurationsalternativ för en dedikerad SQL-pool.

På grund av dess längd är ALTER DATABASE syntaxen uppdelad i flera artiklar.

ALTER DATABASE SET-alternativ innehåller syntax och relaterad information för att ändra attributen för en databas med hjälp av SET-alternativen för ALTER DATABASE.

Syntax

ALTER DATABASE { database_name | CURRENT }
{
  MODIFY NAME = new_database_name
| MODIFY ( <edition_option> [, ... n] )
| SET <option_spec> [ ,...n ] [ WITH <termination> ]
}
[;]

<edition_option> ::=
      MAXSIZE = {
            250 | 500 | 750 | 1024 | 5120 | 10240 | 20480
          | 30720 | 40960 | 51200 | 61440 | 71680 | 81920
          | 92160 | 102400 | 153600 | 204800 | 245760
      } GB
      | SERVICE_OBJECTIVE = {
            'DW100' | 'DW200' | 'DW300' | 'DW400' | 'DW500'
          | 'DW600' | 'DW1000' | 'DW1200' | 'DW1500' | 'DW2000'
          | 'DW3000' | 'DW6000' | 'DW500c' | 'DW1000c' | 'DW1500c'
          | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c' | 'DW6000c'
          | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
      }

Argument

database_name

Anger namnet på databasen som ska ändras.

ÄNDRA NAMN = new_database_name

Byter namn på databasen med namnet som anges som new_database_name.

Alternativet "ÄNDRA NAMN" har vissa stödbegränsningar i Azure Synapse:

  • Stöds inte med serverlösa Azure Synapse-pooler
  • Stöds inte med dedikerade SQL-pooler som skapats i din Azure Synapse-arbetsyta
  • Stöds med dedikerade SQL-pooler (tidigare SQL DW) som skapats via Azure-portalen, inklusive de med en ansluten arbetsyta

MAXSIZE

Standardvärdet är 245 760 GB (240 TB).

gäller för: optimerad för compute Gen1

Den maximala tillåtna storleken för databasen. Databasen kan inte växa utöver MAXSIZE.

gäller för: Optimerad för Compute Gen2

Den maximala tillåtna storleken för radlagringsdata i databasen. Data som lagras i radlagringstabeller, kolumnlagringsindexets deltaarkiv eller ett icke-grupperat index i ett grupperat kolumnlagringsindex kan inte växa utöver MAXSIZE. Data som komprimeras till columnstore-format har ingen storleksgräns och begränsas inte av MAXSIZE.

SERVICE_OBJECTIVE

Anger beräkningsstorleken (tjänstmålet). Mer information om tjänstmål för Azure Synapse finns i Data Warehouse Units (DWU:er).

Behörigheter

Kräver följande behörigheter:

  • Huvudkontoinloggning på servernivå (den som skapades av etableringsprocessen) eller
  • Medlem i dbmanager databasroll.

Databasens ägare kan inte ändra databasen om ägaren inte är medlem i dbmanager rollen.

Anmärkningar

Den aktuella databasen måste vara en annan databas än den som du ändrar, därför måste ALTER köras när den är ansluten till master-databasen.

COMPATIBILITY_LEVEL i SQL Analytics är inställt på 130 som standard och kan inte ändras. Mer information finns i ALTER DATABASE-kompatibilitetsnivå.

Not

COMPATIBILITY_LEVEL gäller endast etablerade resurser (pooler).

Begränsningar

Om du vill köra ALTER DATABASEmåste databasen vara online och kan inte vara i pausat tillstånd.

Instruktionen ALTER DATABASE måste köras i automatiskt incheckningsläge, vilket är standardläget för transaktionshantering. Detta anges i anslutningsinställningarna.

Instruktionen ALTER DATABASE kan inte ingå i en användardefinierad transaktion.

Du kan inte ändra databassortering.

Exempel

Innan du kör de här exemplen kontrollerar du att databasen som du ändrar inte är den aktuella databasen. Den aktuella databasen måste vara en annan databas än den som du ändrar, därför måste ALTER köras när den är ansluten till master-databasen.

A. Ändra namnet på databasen

ALTER DATABASE AdventureWorks2022
MODIFY NAME = Northwind;

B. Ändra maximal storlek för databasen

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB );

C. Ändra beräkningsstorlek (tjänstmål)

ALTER DATABASE dw1 MODIFY ( SERVICE_OBJECTIVE= 'DW1200' );

D. Ändra maxstorlek och beräkningsstorlek (tjänstmål)

ALTER DATABASE dw1 MODIFY ( MAXSIZE=10240 GB, SERVICE_OBJECTIVE= 'DW1200' );

* Analys
Plattformssystem (PDW) *
 

 

Översikt: Analysplattformssystem

I Analytics Platform System (PDW) ändrar ALTER DATABASE de maximala databasstorleksalternativen för replikerade tabeller, distribuerade tabeller och transaktionsloggen. Använd den här instruktionen för att hantera diskutrymmesallokeringar för en databas när den växer eller krymper i storlek. I den här artikeln beskrivs även syntax som rör inställning av databasalternativ i Analytics Platform System (PDW).

Syntax

-- Analytics Platform System
ALTER DATABASE database_name
    SET ( <set_database_options> | <db_encryption_option> )
[;]

<set_database_options> ::=
{
    AUTOGROW = { ON | OFF }
    | REPLICATED_SIZE = size [GB]
    | DISTRIBUTED_SIZE = size [GB]
    | LOG_SIZE = size [GB]
    | SET AUTO_CREATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS { ON | OFF }
    | SET AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF }

Argument

database_name

Namnet på databasen som ska ändras. Om du vill visa en lista över databaser på enheten använder du sys.databases.

AUTOGROW = { ON | AV }

Uppdaterar alternativet AUTOGROW. När AUTOGROW är PÅ ökar Analytics Platform System (PDW) automatiskt det allokerade utrymmet för replikerade tabeller, distribuerade tabeller och transaktionsloggen efter behov för att hantera ökade lagringskrav. När AUTOGROW är AV returnerar Analytics Platform System (PDW) ett fel om replikerade tabeller, distribuerade tabeller eller transaktionsloggen överskrider den maximala storleksinställningen.

REPLICATED_SIZE = storlek [GB]

Anger det nya maximala gigabyte per beräkningsnod för lagring av alla replikerade tabeller i databasen som ändras. Om du planerar för enhetens lagringsutrymme måste du multiplicera REPLICATED_SIZE med antalet beräkningsnoder i installationen.

DISTRIBUTED_SIZE = storlek [GB]

Anger det nya maximala gigabyte per databas för lagring av alla distribuerade tabeller i databasen som ändras. Storleken distribueras över alla beräkningsnoder i installationen.

LOG_SIZE = storlek [GB]

Anger det nya maximala gigabyte per databas för lagring av alla transaktionsloggar i databasen som ändras. Storleken distribueras över alla beräkningsnoder i installationen.

KRYPTERING { PÅ | AV }

Anger att databasen ska krypteras (PÅ) eller inte krypteras (OFF). Kryptering kan bara konfigureras för Analytics Platform System (PDW) när sp_pdw_database_encryption har angetts till 1. En databaskrypteringsnyckel måste skapas innan transparent datakryptering kan konfigureras. Mer information om databaskryptering finns i Transparent datakryptering (TDE).

ANGE AUTO_CREATE_STATISTICS { ON | AV }

När alternativet för automatisk skapande av statistik, AUTO_CREATE_STATISTICS, är PÅ, skapar frågeoptimeraren statistik för enskilda kolumner i frågepredikatet efter behov för att förbättra kardinalitetsuppskattningarna för frågeplanen. Den här statistik med en kolumn skapas för kolumner som inte redan har ett histogram i ett befintligt statistikobjekt.

Standardvärdet är PÅ för nya databaser som skapats efter uppgradering till AU7. Standardvärdet är OFF för databaser som skapades före uppgraderingen.

Mer information om statistik finns i Statistics

ANGE AUTO_UPDATE_STATISTICS { ON | AV }

När alternativet för automatisk uppdateringsstatistik, AUTO_UPDATE_STATISTICS, är PÅ, avgör frågeoptimeraren när statistiken kan vara inaktuell och uppdaterar dem sedan när de används av en fråga. Statistiken blir inaktuell när åtgärder infogar, uppdaterar, tar bort eller sammanfogar ändrar datafördelningen i tabellen eller den indexerade vyn. Frågeoptimeraren avgör när statistiken kan vara inaktuell genom att räkna antalet dataändringar sedan den senaste statistikuppdateringen och jämföra antalet ändringar med ett tröskelvärde. Tröskelvärdet baseras på antalet rader i tabellen eller den indexerade vyn.

Standardvärdet är PÅ för nya databaser som skapats efter uppgradering till AU7. Standardvärdet är OFF för databaser som skapades före uppgraderingen.

Mer information om statistik finns i Statistics.

ANGE AUTO_UPDATE_STATISTICS_ASYNC { ON | AV }

Uppdateringsalternativet för asynkron statistik, AUTO_UPDATE_STATISTICS_ASYNC, avgör om frågeoptimeraren använder synkrona eller asynkrona statistikuppdateringar. Alternativet AUTO_UPDATE_STATISTICS_ASYNC gäller för statistikobjekt som skapats för index, enskilda kolumner i frågepredikat och statistik som skapats med CREATE STATISTICS-instruktionen.

Standardvärdet är PÅ för nya databaser som skapats efter uppgradering till AU7. Standardvärdet är OFF för databaser som skapades före uppgraderingen.

Mer information om statistik finns i Statistics.

Behörigheter

Kräver ALTER behörighet för databasen.

Felmeddelanden

Om automatisk statistik är inaktiverad och du försöker ändra statistikinställningarna returnerar PDW felet This option isn't supported in PDW. Systemadministratören kan aktivera automatisk statistik genom att aktivera funktionsväxeln AutoStatsEnabled.

Anmärkningar

Värdena för REPLICATED_SIZE, DISTRIBUTED_SIZEoch LOG_SIZE kan vara större än, lika med eller mindre än de aktuella värdena för databasen.

Begränsningar

Åtgärderna För att öka och krympa är ungefärliga. De resulterande faktiska storlekarna kan variera från storleksparametrarna.

Analytics Platform System (PDW) utför inte ALTER DATABASE-instruktionen som en atomisk åtgärd. Om -instruktionen avbryts under körningen kommer ändringar som redan har inträffat att finnas kvar.

Statistikinställningarna fungerar bara om administratören har aktiverat automatisk statistik. Om du är administratör använder du funktionsväxeln AutoStatsEnabled för att aktivera eller inaktivera automatisk statistik.

Låsningsbeteende

Tar ett delat lås på DATABASE-objektet. Du kan inte ändra en databas som används av en annan användare för läsning eller skrivning. Detta inkluderar sessioner som har utfärdat en USE--instruktion i databasen.

Föreställning

Att krympa en databas kan ta lång tid och systemresurser, beroende på storleken på de faktiska data i databasen och mängden fragmentering på disken. Det kan till exempel ta flera timmar eller mer att krympa en databas.

Fastställa krypteringsstatus

Använd följande fråga för att fastställa förloppet för databastransparent datakryptering som procent:

WITH
database_dek AS (
    SELECT ISNULL(db_map.database_id, dek.database_id) AS database_id,
        dek.encryption_state, dek.percent_complete,
        dek.key_algorithm, dek.key_length, dek.encryptor_thumbprint,
        type
    FROM sys.dm_pdw_nodes_database_encryption_keys AS dek
    INNER JOIN sys.pdw_nodes_pdw_physical_databases AS node_db_map
        ON dek.database_id = node_db_map.database_id
        AND dek.pdw_node_id = node_db_map.pdw_node_id
    LEFT JOIN sys.pdw_database_mappings AS db_map
        ON node_db_map .physical_name = db_map.physical_name
    INNER JOIN sys.dm_pdw_nodes nodes
        ON nodes.pdw_node_id = dek.pdw_node_id
    WHERE dek.encryptor_thumbprint <> 0x
),
dek_percent_complete AS (
    SELECT database_dek.database_id, AVG(database_dek.percent_complete) AS percent_complete
    FROM database_dek
    WHERE type = 'COMPUTE'
    GROUP BY database_dek.database_id
)
SELECT DB_NAME( database_dek.database_id ) AS name,
    database_dek.database_id,
    ISNULL(
       (SELECT TOP 1 dek_encryption_state.encryption_state
        FROM database_dek AS dek_encryption_state
        WHERE dek_encryption_state.database_id = database_dek.database_id
        ORDER BY (CASE encryption_state
            WHEN 3 THEN -1
            ELSE encryption_state
            END) DESC), 0)
        AS encryption_state,
dek_percent_complete.percent_complete,
database_dek.key_algorithm, database_dek.key_length, database_dek.encryptor_thumbprint
FROM database_dek
INNER JOIN dek_percent_complete
    ON dek_percent_complete.database_id = database_dek.database_id
WHERE type = 'CONTROL';

Ett omfattande exempel som visar alla steg i implementeringen av TDE finns i Transparent datakryptering (TDE).

Exempel: Analysplattformssystem (PDW)

A. Ändra inställningen AUTOGROW

Ange AUTOGROW till PÅ för databas CustomerSales.

ALTER DATABASE CustomerSales
    SET ( AUTOGROW = ON );

B. Ändra det maximala lagringsutrymmet för replikerade tabeller

I följande exempel anges gränsen för replikerad tabelllagring till 1 GB för databasen CustomerSales. Det här är lagringsgränsen per beräkningsnod.

ALTER DATABASE CustomerSales
    SET ( REPLICATED_SIZE = 1 GB );

C. Ändra det maximala lagringsutrymmet för distribuerade tabeller

I följande exempel anges gränsen för distribuerad tabelllagring till 1 000 GB (en terabyte) för databasen CustomerSales. Det här är den kombinerade lagringsgränsen för alla beräkningsnoder, inte lagringsgränsen per beräkningsnod.

ALTER DATABASE CustomerSales
    SET ( DISTRIBUTED_SIZE = 1000 GB );

D. Ändra det maximala lagringsutrymmet för transaktionsloggen

I följande exempel uppdateras databasen CustomerSales ha en maximal SQL Server-transaktionsloggstorlek på 10 GB för installationen.

ALTER DATABASE CustomerSales
    SET ( LOG_SIZE = 10 GB );

E. Sök efter aktuella statistikvärden

Följande fråga returnerar de aktuella statistikvärdena för alla databaser. Värdet 1 innebär att funktionen är på och en 0 innebär att funktionen är inaktiverad.

SELECT NAME,
    is_auto_create_stats_on,
    is_auto_update_stats_on,
    is_auto_update_stats_async_on
FROM sys.databases;

F. Aktivera statistik för automatisk skapande och automatisk uppdatering för en databas

Använd följande instruktion för att aktivera skapa och uppdatera statistik automatiskt och asynkront för databasen CustomerSales. Detta skapar och uppdaterar statistik med en kolumn efter behov för att skapa högkvalitativa frågeplaner.

ALTER DATABASE CustomerSales
    SET AUTO_CREATE_STATISTICS ON;
ALTER DATABASE CustomerSales
    SET AUTO_UPDATE_STATISTICS ON;
ALTER DATABASE
    SET AUTO_UPDATE_STATISTICS_ASYNC ON;

Översikt: Microsoft Fabric

Microsoft Fabric

I Microsoft Fabric Warehouse ändrar den här instruktionen ett lager.

På grund av dess längd är ALTER DATABASE syntaxen uppdelad i flera artiklar.

Artikel Beskrivning
ALTER DATABASE Den aktuella artikeln innehåller syntaxen och relaterad information för att ändra namnet och sortering av en databas.
ALTER DATABASE SET-alternativ Innehåller syntax och relaterad information för att ändra attributen för en databas med hjälp av SET-alternativen för ALTER DATABASE.

Anmärkningar

För närvarande är pausning av Delta Lake-loggpublicering och inaktivering av V-Order-beteende i ett lager de enda användningsområdena för ALTER DATABASE ... SET i Microsoft Fabric. Se ALTER DATABASE SET-alternativ.