Dela via


SKAPA DATABAS

Skapar en ny databas.

Välj någon av följande flikar för syntax, argument, kommentarer, behörigheter och exempel för en viss SQL-version som du arbetar med.

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 *  

 

SQL Server

Överblick

I SQL Server skapar den här instruktionen en ny databas och de filer som används och deras filgrupper. Den kan också användas för att skapa en ögonblicksbild av databasen eller bifoga databasfiler för att skapa en databas från de frånkopplade filerna i en annan databas.

Syntax

Skapa en databas.

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

CREATE DATABASE database_name
[ CONTAINMENT = { NONE | PARTIAL } ]
[ ON
      [ PRIMARY ] <filespec> [ ,...n ]
      [ , <filegroup> [ ,...n ] ]
      [ LOG ON <filespec> [ ,...n ] ]
]
[ COLLATE collation_name ]
[ WITH <option> [,...n ] ]
[;]

<option> ::=
{
      FILESTREAM ( <filestream_option> [,...n ] )
    | DEFAULT_FULLTEXT_LANGUAGE = { lcid | language_name | language_alias }
    | DEFAULT_LANGUAGE = { lcid | language_name | language_alias }
    | NESTED_TRIGGERS = { OFF | ON }
    | TRANSFORM_NOISE_WORDS = { OFF | ON }
    | TWO_DIGIT_YEAR_CUTOFF = <two_digit_year_cutoff>
    | DB_CHAINING { OFF | ON }
    | TRUSTWORTHY { OFF | ON }
    | PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='path-to-directory-on-a-DAX-volume' )
    | LEDGER = {ON | OFF }
}

<filestream_option> ::=
{
      NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
    | DIRECTORY_NAME = 'directory_name'
}

<filespec> ::=
{
(
    NAME = logical_file_name ,
    FILENAME = { 'os_file_name' | 'filestream_path' }
    [ , SIZE = size [ KB | MB | GB | TB ] ]
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ]
)
}

<filegroup> ::=
{
FILEGROUP filegroup name [ [ CONTAINS FILESTREAM ] [ DEFAULT ] | CONTAINS MEMORY_OPTIMIZED_DATA ]
    <filespec> [ ,...n ]
}

Bifoga en databas

CREATE DATABASE database_name
    ON <filespec> [ ,...n ]
    FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ] }
        | ATTACH_REBUILD_LOG }
[;]

<attach_database_option> ::=
{
      <service_broker_option>
    | RESTRICTED_USER
    | FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL } )
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}

Skapa en databasögonblicksbild

CREATE DATABASE database_snapshot_name
    ON
    (
        NAME = logical_file_name,
        FILENAME = 'os_file_name'
    ) [ ,...n ]
    AS SNAPSHOT OF
[;]

Argument

database_name

Det här är namnet på den nya databasen. Databasnamn måste vara unika i en instans av SQL Server och följa reglerna för identifierare.

database_name kan vara högst 128 tecken, såvida inte ett logiskt namn inte har angetts för loggfilen. Om ett namn på en logisk loggfil inte har angetts genererar SQL Server logical_file_name och os_file_name för loggen genom att lägga till ett suffix för att database_name. Detta begränsar database_name till 123 tecken så att det genererade logiska filnamnet inte är mer än 128 tecken.

Om datafilnamnet inte har angetts använder SQL Server database_name som både logical_file_name och som os_file_name. Standardsökvägen hämtas från registret. Standardsökvägen kan ändras på sidan Serveregenskaper (databasinställningar) i Management Studio. Om du ändrar standardsökvägen måste DU starta om SQL Server.

CONTAINMENT = { NONE | PARTIELL }

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

Anger databasens inneslutningsstatus. NONE = icke-innesluten databas. PARTIAL = delvis innesluten databas.

Anger att de diskfiler som används för att lagra dataavsnitten i databasen, datafiler, uttryckligen definieras. ON krävs när det följs av en kommaavgränsad lista över <filespec> objekt som definierar datafilerna för den primära filgruppen. Listan över filer i den primära filgruppen kan följas av en valfri kommaavgränsad lista över <filgrupp> objekt som definierar användarfilgrupper och deras filer.

PRIMÄR

Anger att den associerade <->-listan definierar den primära filen. Den första filen som anges i posten <filespec> i den primära filgruppen blir den primära filen. En databas kan bara ha en primär fil. Mer information finns i Database Files and Filegroups.

Om PRIMARY inte har angetts blir den första filen som anges i instruktionen CREATE DATABASE den primära filen.

LOGGA IN

Anger att de diskfiler som används för att lagra databasloggen, loggfilerna, uttryckligen definieras. LOGGA IN följs av en kommaavgränsad lista över <filerpec> objekt som definierar loggfilerna. Om inloggning inte anges skapas en loggfil automatiskt, som har en storlek som är 25 procent av summan av storleken på alla datafiler för databasen, eller 512 KB, beroende på vilket som är större. Den här filen placeras på standardplatsen för loggfilen. Information om den här platsen finns i Visa eller ändra standardplatserna för data och loggfiler i SSMS.

Det går inte att ange INLOGGNING på en ögonblicksbild av databasen.

SORTERA COLLATION_NAME

Anger standardsortering för databasen. Sorteringsnamnet kan vara antingen ett Windows-sorteringsnamn eller ett SQL-sorteringsnamn. Om den inte anges tilldelas databasen standardsortering av instansen av SQL Server. Det går inte att ange ett sorteringsnamn för en databasögonblicksbild.

Det går inte att ange ett sorteringsnamn med satserna FOR ATTACH eller FOR ATTACH_REBUILD_LOG. Information om hur du ändrar sortering av en bifogad databas finns i den här Microsoft-webbplatsen.

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

Not

Inneslutna databaser är sorterade på ett annat sätt än icke-inneslutna databaser. Mer information finns i inneslutna databassortering.

MED <alternativ>

<filestream_option>

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }

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

Anger nivån för icke-transaktionell FILESTREAM-åtkomst till databasen.

Värde Beskrivning
OFF Icke-transaktionell åtkomst är inaktiverad.
READONLY FILESTREAM-data i den här databasen kan läsas av icke-transaktionella processer.
FULL Fullständig icke-transaktionell åtkomst till FILESTREAM FileTables är aktiverad.

DIRECTORY_NAME = <directory_name>

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

Ett Windows-kompatibelt katalognamn. Det här namnet ska vara unikt bland alla Database_Directory namn i SQL Server-instansen. Unikhetsjämförelse är skiftlägeskänslig, oavsett inställningarna för SQL Server-sortering. Det här alternativet bör anges innan du skapar en FileTable i den här databasen.



Följande alternativ är endast tillåtna när CONTAINMENT har angetts till PARTIAL. Om CONTAINMENT är inställt på NONE uppstår fel.

DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <språknamn> | <språkalias>

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

Se Konfigurera standardalternativet serverkonfiguration i fulltext för en fullständig beskrivning av det här alternativet.

DEFAULT_LANGUAGE = <lcid> | <språknamn> | <språkalias>

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

Se Konfigurera standardspråket Serverkonfigurationsalternativ för en fullständig beskrivning av det här alternativet.

NESTED_TRIGGERS = { OFF | PÅ }

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

Se Konfigurera konfigurationsalternativet för kapslade utlösare för server för en fullständig beskrivning av det här alternativet.

TRANSFORM_NOISE_WORDS = { OFF | PÅ }

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

Se transformera brusord serverkonfigurationsalternativet för en fullständig beskrivning av det här alternativet.

TWO_DIGIT_YEAR_CUTOFF = { 2049 | <valfritt år mellan 1753 och 9999> }

Fyra siffror som representerar ett år. 2049 är standardvärdet. Mer information om det här alternativet finns i Konfigurera det tvåsiffriga alternativet för årsavstängning av serverkonfiguration.

DB_CHAINING { OFF | PÅ }

När ON anges kan databasen vara källan eller målet för en ägarkedja mellan databaser.

När den är AV kan databasen inte delta i korsdatabasägarlänkning. Standardvärdet är AV.

Viktig

Sql Server-instansen känner igen den här inställningen när alternativet korsdatabasägarlänkningsserver är 0 (OFF). När korsdatabasens ägarlänkning är 1 (ON) kan alla användardatabaser delta i ägarkedjor mellan databaser, oavsett värdet för det här alternativet. Det här alternativet anges med hjälp av sp_configure.

Om du vill ange det här alternativet måste du ha medlemskap i den fasta serverrollen sysadmin. Det går inte att ange det DB_CHAINING alternativet för dessa systemdatabaser: master, model, tempdb.

TRUSTWORTHY { OFF | PÅ }

När ON anges kan databasmoduler (till exempel vyer, användardefinierade funktioner eller lagrade procedurer) som använder en personifieringskontext komma åt resurser utanför databasen.

När det är AV kan databasmoduler i en personifieringskontext inte komma åt resurser utanför databasen. Standardvärdet är AV.

TRUSTWORTHY anges till AV när databasen är ansluten.

Som standard har alla systemdatabaser utom den msdb databasen TRUSTWORTHY inställt på AV. Det går inte att ändra värdet för model- och tempdb-databaserna. Vi rekommenderar att du aldrig anger alternativet TRUSTWORTHY till PÅ för master-databasen.

PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='' )

gäller för: SQL Server 2017 (14.x) och senare.

När det här alternativet har angetts skapas transaktionsloggbufferten på en volym som finns på en diskenhet som backas upp av Lagringsklassminne (NVDIMM-N icke-lagring), även kallat en beständig loggbuffert. Mer information finns i acceleration av fördröjning vid transaktionsincheckning med lagringsklassminne och Lägg till beständig loggbuffert i en databas.

LEDGER = {ON | AV }

När värdet är inställt på ONskapar den en transaktionsregisterdatabas där integriteten för alla användardata skyddas. Endast transaktionsregistertabeller kan skapas i en transaktionsregisterdatabas. Standardvärdet är OFF. Det går inte att ändra värdet för alternativet LEDGER när databasen har skapats. Mer information finns i Konfigurera en transaktionsregisterdatabas.

SKAPA DATABAS ... FÖR BIFOGA [ MED < attach_database_option > ]

Anger att databasen skapas genom att att koppla en befintlig uppsättning operativsystemfiler. Det måste finnas en <> post som anger den primära filen. De enda andra <filerpec> poster som krävs är de för filer som har en annan sökväg än när databasen först skapades eller senast kopplades. En <filespec> post måste anges för dessa filer.

FÖR ATTACH krävs följande:

  • Alla datafiler (MDF och NDF) måste vara tillgängliga.
  • Om det finns flera loggfiler måste alla vara tillgängliga.

Om en läs-/skrivdatabas har en enda loggfil som för närvarande inte är tillgänglig och om databasen stängdes av utan användare eller öppna transaktioner innan ATTACH åtgärden FOR ATTACH automatiskt återskapar loggfilen och uppdaterar den primära filen. För en skrivskyddad databas kan loggen däremot inte återskapas eftersom den primära filen inte kan uppdateras. När du bifogar en skrivskyddad databas med en logg som inte är tillgänglig måste du därför ange loggfilerna eller filerna i FOR ATTACH-satsen.

Not

En databas som skapats av en nyare version av SQL Server kan inte kopplas i tidigare versioner.

I SQL Server kopplas alla fulltextfiler som ingår i databasen som kopplas till databasen. Om du vill ange en ny sökväg för fulltextkatalogen anger du den nya platsen utan filnamnet för operativsystemet i fulltext. Mer information finns i avsnittet Exempel.

Om du kopplar en databas som innehåller alternativet FILESTREAM med "Katalognamn" till en SQL Server-instans uppmanas SQL Server att kontrollera att Database_Directory namn är unikt. Om det inte är det misslyckas ATTACH åtgärden med felet FILESTREAM Database_Directory name is not unique in this SQL Server instance. För att undvika det här felet ska den valfria parametern, directory_name, skickas till den här åtgärden.

DET går inte att ange FÖR ATTACH på en ögonblicksbild av databasen.

FÖR ATTACH kan du ange alternativet RESTRICTED_USER. RESTRICTED_USER tillåter endast att medlemmar i den db_owner fasta databasrollen och dbcreator- och sysadmin-serverrollerna ansluter till databasen, men begränsar inte antalet. Försök av okvalificerade användare nekas.

<service_broker_option>

Om databasen använder Service Broker använder du WITH-<service_broker_option> i DIN FOR ATTACH-sats:

Styr meddelandeleveransen för Service Broker och Service Broker-identifieraren för databasen. Service Broker-alternativ kan bara anges när FOR ATTACH-satsen används.

ENABLE_BROKER

Anger att Service Broker är aktiverat för den angivna databasen. Det innebär att meddelandeleveransen startas och is_broker_enabled anges till true i sys.databases katalogvy. Databasen behåller den befintliga Service Broker-identifieraren.

NEW_BROKER

Skapar ett nytt service_broker_guid värde i både sys.databases och den återställda databasen. Avslutar alla konversationsslutpunkter med rensning. Asynkron meddelandekö är aktiverat, men inget meddelande skickas till fjärrkonversationens slutpunkter. Alla vägar som refererar till den gamla Service Broker-identifieraren måste återskapas med den nya identifieraren.

ERROR_BROKER_CONVERSATIONS

Avslutar alla konversationer med ett fel som anger att databasen är ansluten eller återställd. Asynkron meddelandekö är inaktiverad tills den här åtgärden har slutförts och sedan aktiverats. Databasen behåller den befintliga Service Broker-identifieraren.

När du kopplar en replikerad databas som kopierades i stället för att kopplas från bör du tänka på:

  • Om du kopplar databasen till samma serverinstans och version som den ursprungliga databasen krävs inga ytterligare steg.
  • Om du kopplar databasen till samma serverinstans men med en uppgraderad version måste du köra sp_vupgrade_replication för att uppgradera replikeringen när anslutningsåtgärderna har slutförts.
  • Om du kopplar databasen till en annan serverinstans, oavsett version, måste du köra sp_removedbreplication för att ta bort replikeringen när anslutningsåtgärden har slutförts.

Not

Koppla fungerar med vardecimalt lagringsformat, men SQL Server Database Engine måste uppgraderas till minst SQL Server 2005 (9.x) SP2. Du kan inte koppla en databas med vardecimalt lagringsformat till en tidigare version av SQL Server. Mer information om lagringsformatet vardecimalt finns i Datakomprimering.

När en databas först ansluts eller återställs till en ny instans av SQL Server lagras ännu inte en kopia av databashuvudnyckeln (krypterad av tjänstens huvudnyckel) på servern. Du måste använda OPEN MASTER KEY-instruktionen för att dekryptera databashuvudnyckeln (DMK). När DMK har dekrypterats kan du aktivera automatisk dekryptering i framtiden med hjälp av ALTER MASTER KEY REGENERATE-instruktionen för att etablera servern med en kopia av DMK,krypterad med tjänstens huvudnyckel (SMK). När en databas har uppgraderats från en tidigare version bör DMK återskapas för att använda den nyare AES-algoritmen. Mer information om hur du återskapar DMK finns i ALTER MASTER KEY. Den tid det tar att återskapa DMK-nyckeln för att uppgradera till AES beror på antalet objekt som skyddas av DMK. Det är bara nödvändigt att återskapa DMK-nyckeln för att uppgradera till AES en gång och har ingen effekt på framtida regenereringar som en del av en nyckelrotationsstrategi. Information om hur du uppgraderar en databas med hjälp av bifoga finns i Uppgradera en databas med koppla från och koppla.

Viktig

Vi rekommenderar att du inte bifogar databaser från okända eller ej betrodda källor. Sådana databaser kan innehålla skadlig kod som kan köra oavsiktlig Transact-SQL kod eller orsaka fel genom att ändra schemat eller den fysiska databasstrukturen. Innan du använder en databas från en okänd eller obetrodd källa kör du DBCC CHECKDB- på databasen på en icke-produktionsserver och undersöker även koden, till exempel lagrade procedurer eller annan användardefinierad kod, i databasen.

Not

Alternativen TRUSTWORTHY och DB_CHAINING har ingen effekt när du kopplar en databas.

FÖR ATTACH_REBUILD_LOG

Anger att databasen skapas genom att koppla en befintlig uppsättning operativsystemfiler. Det här alternativet är begränsat till läs-/skrivdatabaser. Det måste finnas en <> post som anger den primära filen. Om en eller flera transaktionsloggfiler saknas återskapas loggfilen. ATTACH_REBUILD_LOG skapar automatiskt en ny loggfil på 1 MB. Den här filen placeras på standardplatsen för loggfilen. Information om den här platsen finns i Visa eller ändra standardplatserna för data och loggfiler i SSMS.

Not

Om loggfilerna är tillgängliga använder databasmotorn dessa filer i stället för att återskapa loggfilerna.

FÖR ATTACH_REBUILD_LOG kräver följande villkor:

  • En ren avstängning av databasen.
  • Alla datafiler (MDF och NDF) måste vara tillgängliga.

Viktig

Den här åtgärden bryter loggsäkerhetskopieringskedjan. Vi rekommenderar att en fullständig säkerhetskopia av databasen utförs när åtgärden har slutförts. Mer information finns i BACKUP.

Vanligtvis används FOR-ATTACH_REBUILD_LOG när du kopierar en läs-/skrivdatabas med en stor logg till en annan server där kopian huvudsakligen eller endast används för läsåtgärder och därför kräver mindre loggutrymme än den ursprungliga databasen.

FÖR ATTACH_REBUILD_LOG kan inte anges i en databasögonblicksbild.

Mer information om hur du kopplar och kopplar från databaser finns i Database Detach och Attach.

<filespec>

Styr filegenskaperna.

NAMN logical_file_name

Anger det logiska namnet på filen. NAMN krävs när FILENAME anges, förutom när du anger någon av FOR ATTACH-satserna. Det går inte att namnge en FILESTREAM-filgrupp med namnet PRIMARY.

logical_file_name

Är det logiska namnet som används i SQL Server när du refererar till filen. Logical_file_name måste vara unikt i databasen och följa reglerna för identifierare. Namnet kan vara ett tecken eller en Unicode-konstant eller en vanlig eller avgränsad identifierare.

FILENAME { 'os_file_name' | 'filestream_path' }

Anger operativsystemets (fysiska) filnamn.

os_file_name

Är sökvägen och filnamnet som används av operativsystemet när du skapar filen. Filen måste finnas på någon av följande enheter: den lokala server där SQL Server är installerad, ett san-nätverk för lagringsområde eller ett iSCSI-baserat nätverk. Den angivna sökvägen måste finnas innan instruktionen CREATE DATABASE körs. Mer information finns i Databasfiler och filgrupper senare i den här artikeln.

Parametrarna SIZE, MAXSIZE och FILEGROWTH kan anges när en UNC-sökväg har angetts för filen.

Om filen finns på en raw-partition måste os_file_name endast ange enhetsbeteckningen för en befintlig råpartition. Endast en datafil kan skapas på varje rådatapartition.

Not

Råpartitioner stöds inte i SQL Server 2014 och senare versioner.

Datafiler ska inte placeras på komprimerade filsystem om inte filerna är skrivskyddade sekundära filer eller om databasen är skrivskyddad. Loggfiler bör aldrig sättas på komprimerade filsystem.

filestream_path

För en FILESTREAM-filgrupp refererar FILENAME till en sökväg där FILESTREAM-data lagras. Sökvägen till den sista mappen måste finnas och den sista mappen får inte finnas. Om du till exempel anger sökvägen C:\MyFiles\MyFilestreamDatamåste C:\MyFiles finnas innan du kör ALTER DATABASE, men mappen MyFilestreamData får inte finnas.

Filgruppen och filen (<filespec>) måste skapas i samma instruktion.

Egenskaperna SIZE och FILEGROWTH gäller inte för en FILESTREAM-filgrupp.

STORLEK storlek

Anger filens storlek.

SIZE kan inte anges när os_file_name anges som en UNC-sökväg. SIZE gäller inte för en FILESTREAM-filgrupp.

storlek

Är den ursprungliga storleken på filen.

När storlek inte anges för den primära filen använder databasmotorn storleken på den primära filen i den model databasen. Standardstorleken för model-databasen är 8 MB (från och med SQL Server 2016 (13.x)) eller 1 MB (för tidigare versioner). När en sekundär datafil eller loggfil anges, men storlek inte har angetts för filen, gör databasmotorn filen till 8 MB (från och med SQL Server 2016 (13.x)) eller 1 MB (för tidigare versioner). Den angivna storleken för den primära filen måste vara minst lika stor som den primära filen i den model databasen.

Du kan använda suffixen kilobyte (KB), megabyte (MB), gigabyte (GB) eller terabyte (TB). Standardvärdet är MB. Ange ett heltal. Ta inte med ett decimaltecken. Storlek är ett heltalsvärde. Använd större enheter för värden som är större än 2147483647.

MAXSIZE max_size

Anger den maximala storlek som filen kan växa till. MAXSIZE kan inte anges när os_file_name anges som en UNC-sökväg.

max_size

Är den maximala filstorleken. Suffixen KB, MB, GB och TB kan användas. Standardvärdet är MB. Ange ett heltal. Ta inte med ett decimaltecken. Om max_size inte anges växer filen tills disken är full. Max_size är ett heltalsvärde. Använd större enheter för värden som är större än 2147483647.

OBEGRÄNSAD

Anger att filen växer tills disken är full. I SQL Server har en loggfil som angetts med obegränsad tillväxt en maximal storlek på 2 TB och en datafil har en maximal storlek på 16 TB.

Not

Det finns ingen maximal storlek när det här alternativet har angetts för en FILESTREAM-container. Den fortsätter att växa tills disken är full.

FILEGROWTH growth_increment

Anger den automatiska tillväxtökningen för filen. Inställningen FILEGROWTH för en fil får inte överskrida MAXSIZE-inställningen. FILEGROWTH kan inte anges när os_file_name anges som en UNC-sökväg. FILEGROWTH gäller inte för en FILESTREAM-filgrupp.

growth_increment

Läggs mängden utrymme till i filen varje gång det nya utrymmet krävs.

Värdet kan anges i MB, KB, GB, TB eller procent (%). Om ett tal anges utan ett Suffix för MB, KB eller % är standardvärdet MB. När % anges är ökningsstorleken den angivna procentandelen av filens storlek när inkrementet inträffar. Den angivna storleken avrundas till närmaste 64 KB och det minsta värdet är 64 KB.

Värdet 0 anger att automatisk tillväxt är inaktiverad och att inget ytterligare utrymme tillåts.

Om FILEGROWTH inte har angetts är standardvärdena:

Version Standardvärden
Början av SQL Server 2016 (13.x) Data 64 MB. Loggfiler 64 MB.
Början av SQL Server 2005 (9.x) Data 1 MB. Loggfiler 10%.
Före SQL Server 2005 (9.x) Data 10%. Loggfiler 10%.

<filgrupp>

Styr filgruppsegenskaperna. Det går inte att ange en filgrupp i en ögonblicksbild av databasen.

FILEGROUP-filegroup_name

Är filgruppens logiska namn.

filegroup_name

filegroup_name måste vara unika i databasen och får inte vara systemnamnen PRIMARY och PRIMARY_LOG. Namnet kan vara ett tecken eller en Unicode-konstant eller en vanlig eller avgränsad identifierare. Namnet måste följa reglerna för identifierare.

CONTAINS FILESTREAM

Anger att filgruppen lagrar FILESTREAM-binära stora objekt (BLOB) i filsystemet.

STANDARD

Anger att den namngivna filgruppen är standardfilgruppen i databasen.

INNEHÅLLER MEMORY_OPTIMIZED_DATA

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

Anger att filgruppen lagrar memory_optimized data i filsystemet. Mer information finns i översikten över In-Memory optimering och användningsscenarier. Endast en MEMORY_OPTIMIZED_DATA filgrupp tillåts per databas. Kodexempel som skapar en filgrupp för att lagra minnesoptimerade data finns i Skapa en Memory-Optimized-tabell och en intern kompilerad lagrad procedur.

database_snapshot_name

Är namnet på den nya databasögonblicksbilden. Namn på databasögonblicksbilder måste vara unika i en instans av SQL Server och följa reglerna för identifierare. database_snapshot_name kan innehålla högst 128 tecken.

ON ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]

För att skapa en databasögonblicksbild anger du en lista över filer i källdatabasen. För att ögonblicksbilden ska fungera måste alla datafiler anges individuellt. Loggfiler tillåts dock inte för databasögonblicksbilder. FILESTREAM-filgrupper stöds inte av databasögonblicksbilder. Om en FILESTREAM-datafil ingår i en CREATE DATABASE ON-sats misslyckas instruktionen och ett fel utlöses.

Beskrivningar av NAME och FILENAME och deras värden finns i beskrivningarna av motsvarande <filespec> värden.

Not

När du skapar en databasögonblicksbild tillåts inte de andra <filespec> och nyckelordet PRIMARY.

SOM ÖGONBLICKSBILD AV source_database_name

Anger att databasen som skapas är en databasögonblicksbild av källdatabasen som anges av source_database_name. Ögonblicksbilden och källdatabasen måste finnas på samma instans.

Före SQL Server 2019 kunde källdatabasen för en databasögonblicksbild inte innehålla en MEMORY_OPTIMIZED_DATA filgrupp. Stöd för minnesinterna databasögonblicksbilder har lagts till i SQL Server 2019.

Mer information finns i Database Snapshots.

Anmärkningar

Den huvuddatabasen bör säkerhetskopieras när en användardatabas skapas, ändras eller tas bort.

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

Du kan använda en CREATE DATABASE-instruktion för att skapa en databas och de filer som lagrar databasen. SQL Server implementerar CREATE DATABASE-instruktionen med hjälp av följande steg:

  1. SQL Server använder en kopia av modelldatabasen för att initiera databasen och dess metadata.
  2. Ett GUID för tjänstkoordinator tilldelas till databasen.
  3. Databasmotorn fyller sedan resten av databasen med tomma sidor, förutom sidor som har interna data som registrerar hur utrymmet används i databasen.

Högst 32 767 databaser kan anges på en instans av SQL Server.

Varje databas har en ägare som kan utföra särskilda aktiviteter i databasen. Ägaren är den användare som skapar databasen. Databasägaren kan ändras med hjälp av ALTER AUTHORIZATION.

Vissa databasfunktioner är beroende av funktioner som finns i filsystemet för fullständig funktionalitet i en databas. Några exempel på funktioner som är beroende av filsystemets funktionsuppsättning är:

  • DBCC CHECKDB
  • FileStream
  • Onlinesäkerhetskopior med VSS och ögonblicksbilder av filer
  • Skapa databasögonblicksbild
  • Minnesoptimerad datafilgrupp

Databasfiler och filgrupper

Varje databas har minst två filer, en primär fil och en transaktionsloggfiloch minst en filgrupp. Högst 32 767 filer och 32 767 filgrupper kan anges för varje databas.

När du skapar en databas gör du datafilerna så stora som möjligt baserat på den maximala mängden data som du förväntar dig i databasen.

Vi rekommenderar att du använder ett SAN (Storage Area Network), iSCSI-baserat nätverk eller en lokalt ansluten disk för lagring av SQL Server-databasfiler, eftersom den här konfigurationen optimerar SQL Server-prestanda och tillförlitlighet.

Databasögonblicksbilder

Du kan använda CREATE DATABASE-instruktionen för att skapa en skrivskyddad, statisk vy, en databasögonblicksbild av källdatabasen. En ögonblicksbild av databasen är transaktionsmässigt konsekvent med källdatabasen som den fanns vid den tidpunkt då ögonblicksbilden skapades. En källdatabas kan ha flera ögonblicksbilder.

Not

När du skapar en ögonblicksbild av databasen kan CREATE DATABASE-instruktionen inte referera till loggfiler, offlinefiler, återställa filer och defunct-filer.

Om det inte går att skapa en ögonblicksbild av databasen blir ögonblicksbilden misstänkt och måste tas bort. Mer information finns i DROP DATABASE.

Varje ögonblicksbild bevaras tills den tas bort med hjälp av DROP DATABASE.

Mer information finns i Databasögonblicksbilder och Skapa en databasögonblicksbild (Transact-SQL).

Databasalternativ

Flera databasalternativ anges automatiskt när du skapar en databas. En lista över dessa alternativ finns i ALTER DATABASE SET Options.

Modelldatabasen och skapandet av nya databaser

Alla användardefinierade objekt i modelldatabasen kopieras till alla nyligen skapade databaser. Du kan lägga till alla objekt, till exempel tabeller, vyer, lagrade procedurer, datatyper och så vidare, till den model databas som ska ingå i alla nyligen skapade databaser.

När en CREATE DATABASE <database_name>-instruktion anges utan ytterligare storleksparametrar, görs den primära datafilen lika stor som den primära filen i model-databasen.

Om inte FOR ATTACH anges ärver varje ny databas inställningarna för databasalternativet från model-databasen. Databasalternativet automatiskt krympa är till exempel inställt på sant i model och i alla nya databaser som du skapar. Om du ändrar alternativen i den model databasen används dessa nya alternativinställningar i alla nya databaser som du skapar. Att ändra åtgärder i model-databasen påverkar inte befintliga databaser. Om FOR ATTACH anges i instruktionen CREATE DATABASE ärver den nya databasen databasalternativinställningarna för den ursprungliga databasen.

Visa databasinformation

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

Behörigheter

Kräver behörigheten CREATE DATABASE, CREATE ANY DATABASEeller ALTER ANY DATABASE.

För att behålla kontrollen över diskanvändningen på en instans av SQL Server är behörigheten att skapa databaser vanligtvis begränsad till några inloggningar.

I följande exempel får du behörighet att skapa en databas till databasanvändaren Fay.

USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO

Behörigheter för data och loggfiler

I SQL Server anges vissa behörigheter för data och loggfiler för varje databas. Följande behörigheter anges när följande åtgärder tillämpas på en databas:

  • Bifogad
  • Säkerhetskopierade
  • Skapad
  • Fristående
  • Ändrad för att lägga till en ny fil
  • Återställd

Behörigheterna förhindrar att filerna oavsiktligt manipuleras om de finns i en katalog som har öppna behörigheter.

Not

Microsoft SQL Server 2005 Express Edition anger inte behörigheter för data och loggfiler.

Exempel

A. Skapa en databas utan att ange filer

I följande exempel skapas databasen mytest och en motsvarande primär- och transaktionsloggfil skapas. Eftersom instruktionen inte har någon <filespec> objekt, är den primära databasfilen storleken på den primära model databasfilen. Transaktionsloggen är inställd på det större av dessa värden: 512 KB eller 25% storleken på den primära datafilen. Eftersom MAXSIZE inte har angetts kan filerna växa för att fylla allt tillgängligt diskutrymme. Det här exemplet visar också hur du släpper databasen med namnet mytest om den finns innan du skapar mytest-databasen.

USE master;
GO
IF DB_ID (N'mytest') IS NOT NULL
DROP DATABASE mytest;
GO
CREATE DATABASE mytest;
GO
-- Verify the database files and sizes
SELECT name, size, size*1.0/128 AS [Size in MBs]
FROM sys.master_files
WHERE name = N'mytest';
GO

B. Skapa en databas som anger data- och transaktionsloggfilerna

I följande exempel skapas databasen Sales. Eftersom nyckelordet PRIMARY inte används blir den första filen (Sales_dat) den primära filen. Eftersom varken MB eller KB anges i parametern SIZE för filen Sales_dat används MB och allokeras i megabyte. Sales_log-filen allokeras i megabyte eftersom MB-suffixet uttryckligen anges i parametern SIZE.

USE master;
GO
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

C. Skapa en databas genom att ange flera data- och transaktionsloggfiler

I följande exempel skapas databasen Archive som har tre 100-MB datafiler och två 100-MB transaktionsloggfiler. Den primära filen är den första filen i listan och anges uttryckligen med nyckelordet PRIMARY. Transaktionsloggfilerna anges enligt nyckelorden LOG ON. Observera de tillägg som används för filerna i alternativet FILENAME: .mdf används för primära datafiler, .ndf används för sekundära datafiler och .ldf används för transaktionsloggfiler. I det här exemplet placeras databasen på den D: enheten i stället för med master-databasen.

USE master;
GO
CREATE DATABASE Archive
ON
PRIMARY
    (NAME = Arch1,
    FILENAME = 'D:\SalesData\archdat1.mdf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch2,
    FILENAME = 'D:\SalesData\archdat2.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
    ( NAME = Arch3,
    FILENAME = 'D:\SalesData\archdat3.ndf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20)
LOG ON
  (NAME = Archlog1,
    FILENAME = 'D:\SalesData\archlog1.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20),
  (NAME = Archlog2,
    FILENAME = 'D:\SalesData\archlog2.ldf',
    SIZE = 100MB,
    MAXSIZE = 200,
    FILEGROWTH = 20) ;
GO

D. Skapa en databas som har filgrupper

I följande exempel skapas databasen Sales som har följande filgrupper:

  • Den primära filgruppen med filerna Spri1_dat och Spri2_dat. FILGROWTH-steg för dessa filer anges som 15%.
  • En filgrupp med namnet SalesGroup1 med filerna SGrp1Fi1 och SGrp1Fi2.
  • En filgrupp med namnet SalesGroup2 med filerna SGrp2Fi1 och SGrp2Fi2.

I det här exemplet placeras data och loggfiler på olika diskar för att förbättra prestandan.

USE master;
GO
CREATE DATABASE Sales
ON PRIMARY
( NAME = SPri1_dat,
    FILENAME = 'D:\SalesData\SPri1dat.mdf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
( NAME = SPri2_dat,
    FILENAME = 'D:\SalesData\SPri2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 15% ),
FILEGROUP SalesGroup1
( NAME = SGrp1Fi1_dat,
    FILENAME = 'D:\SalesData\SG1Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp1Fi2_dat,
    FILENAME = 'D:\SalesData\SG1Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
FILEGROUP SalesGroup2
( NAME = SGrp2Fi1_dat,
    FILENAME = 'D:\SalesData\SG2Fi1dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 ),
( NAME = SGrp2Fi2_dat,
    FILENAME = 'D:\SalesData\SG2Fi2dt.ndf',
    SIZE = 10,
    MAXSIZE = 50,
    FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
    FILENAME = 'E:\SalesLog\salelog.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
GO

E. Bifoga en databas

I följande exempel kopplas databasen Archive skapas i exempel D och kopplas sedan med hjälp av satsen FOR ATTACH. Archive definierades för att ha flera data och loggfiler. Men eftersom platsen för filerna inte har ändrats sedan de skapades måste endast den primära filen anges i FOR ATTACH-satsen. Från och med SQL Server 2005 (9.x) kopplas alla fulltextfiler som ingår i databasen som kopplas till databasen.

USE master;
GO
sp_detach_db Archive;
GO
CREATE DATABASE Archive
  ON (FILENAME = 'D:\SalesData\archdat1.mdf')
  FOR ATTACH ;
GO

F. Skapa en databasögonblicksbild

I följande exempel skapas databasögonblicksbilden sales_snapshot0600. Eftersom en ögonblicksbild av databasen är skrivskyddad går det inte att ange en loggfil. I enlighet med syntaxen anges varje fil i källdatabasen och filgrupper anges inte.

Källdatabasen för det här exemplet är den Sales databas som skapats i exempel D.

USE master;
GO
CREATE DATABASE sales_snapshot0600 ON
    ( NAME = SPri1_dat, FILENAME = 'D:\SalesData\SPri1dat_0600.ss'),
    ( NAME = SPri2_dat, FILENAME = 'D:\SalesData\SPri2dt_0600.ss'),
    ( NAME = SGrp1Fi1_dat, FILENAME = 'D:\SalesData\SG1Fi1dt_0600.ss'),
    ( NAME = SGrp1Fi2_dat, FILENAME = 'D:\SalesData\SG1Fi2dt_0600.ss'),
    ( NAME = SGrp2Fi1_dat, FILENAME = 'D:\SalesData\SG2Fi1dt_0600.ss'),
    ( NAME = SGrp2Fi2_dat, FILENAME = 'D:\SalesData\SG2Fi2dt_0600.ss')
AS SNAPSHOT OF Sales ;
GO

G. Skapa en databas och ange ett sorteringsnamn och alternativ

I följande exempel skapas databasen MyOptionsTest. Ett sorteringsnamn anges och alternativen TRUSTYWORTHY och DB_CHAINING anges till ON.

USE master;
GO
IF DB_ID (N'MyOptionsTest') IS NOT NULL
DROP DATABASE MyOptionsTest;
GO
CREATE DATABASE MyOptionsTest
COLLATE French_CI_AI
WITH TRUSTWORTHY ON, DB_CHAINING ON;
GO
--Verifying collation and option settings.
SELECT name, collation_name, is_trustworthy_on, is_db_chaining_on
FROM sys.databases
WHERE name = N'MyOptionsTest';
GO

H. Bifoga en fulltextkatalog som har flyttats

I följande exempel bifogas den fullständiga textkatalogen AdvWksFtCat tillsammans med AdventureWorks2022 data och loggfiler. I det här exemplet flyttas fulltextkatalogen från standardplatsen till en ny plats c:\myFTCatalogs. Data- och loggfilerna finns kvar på standardplatserna.

USE master;
GO
--Detach the AdventureWorks2022 database
sp_detach_db AdventureWorks2022;
GO
-- Physically move the full text catalog to the new location.
--Attach the AdventureWorks2022 database and specify the new location of the full-text catalog.
CREATE DATABASE AdventureWorks2022 ON
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_data.mdf'),
    (FILENAME = 'c:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\AdventureWorks2022_log.ldf'),
    (FILENAME = 'c:\myFTCatalogs\AdvWksFtCat')
FOR ATTACH;
GO

Jag. Skapa en databas som anger en radfilgrupp och två FILESTREAM-filgrupper

I följande exempel skapas FileStreamDB-databasen. Databasen skapas med en radfilgrupp och två FILESTREAM-filgrupper. Varje filgrupp innehåller en fil:

  • FileStreamDB_data innehåller raddata. Den innehåller en fil, FileStreamDB_data.mdf med standardsökvägen.
  • FileStreamPhotos innehåller FILESTREAM-data. Den innehåller två FILESTREAM-datacontainrar, FSPhotos, som finns på C:\MyFSfolder\Photos och FSPhotos2, som finns på D:\MyFSfolder\Photos. Den är markerad som standardfilgruppen FILESTREAM.
  • FileStreamResumes innehåller FILESTREAM-data. Den innehåller en FILESTREAM-datacontainer, FSResumes, som finns på C:\MyFSfolder\Resumes.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
      FROM master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

 -- Execute the CREATE DATABASE statement.
EXECUTE ('CREATE DATABASE FileStreamDB
ON PRIMARY
    (
    NAME = FileStreamDB_data
    ,FILENAME = ''' + @data_path + 'FileStreamDB_data.mdf''
    ,SIZE = 10MB
    ,MAXSIZE = 50MB
    ,FILEGROWTH = 15%
    ),
FILEGROUP FileStreamPhotos CONTAINS FILESTREAM DEFAULT
    (
    NAME = FSPhotos
    ,FILENAME = ''C:\MyFSfolder\Photos''
-- SIZE and FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
, MAXSIZE = 5000 MB
    ),
    (
      NAME = FSPhotos2
      , FILENAME = ''D:\MyFSfolder\Photos''
      , MAXSIZE = 10000 MB
     ),
FILEGROUP FileStreamResumes CONTAINS FILESTREAM
    (
    NAME = FileStreamResumes
    ,FILENAME = ''C:\MyFSfolder\Resumes''
    )
LOG ON
    (
    NAME = FileStream_log
    ,FILENAME = ''' + @data_path + 'FileStreamDB_log.ldf''
    ,SIZE = 5MB
    ,MAXSIZE = 25MB
    ,FILEGROWTH = 5MB
    )'
);
GO

J. Skapa en databas som har en FILESTREAM-filgrupp med flera filer

I följande exempel skapas BlobStore1-databasen. Databasen skapas med en radfilgrupp och en FILESTREAM-filgrupp, FS. FILESTREAM-filgruppen innehåller två filer, FS1 och FS2. Sedan ändras databasen genom att en tredje fil, FS3, läggs till i FILESTREAM-filgruppen.

USE master;
GO

CREATE DATABASE [BlobStore1]
CONTAINMENT = NONE
ON PRIMARY
(
    NAME = N'BlobStore1',
    FILENAME = N'C:\BlobStore\BlobStore1.mdf',
    SIZE = 100MB,
    MAXSIZE = UNLIMITED,
    FILEGROWTH = 1MB
),
FILEGROUP [FS] CONTAINS FILESTREAM DEFAULT
(  
    NAME = N'FS1',
    FILENAME = N'C:\BlobStore\FS1',
    MAXSIZE = UNLIMITED
),
(
    NAME = N'FS2',
    FILENAME = N'C:\BlobStore\FS2',
    MAXSIZE = 100MB
)
LOG ON
(
    NAME = N'BlobStore1_log',
    FILENAME = N'C:\BlobStore\BlobStore1_log.ldf',
    SIZE = 100MB,
    MAXSIZE = 1GB,
    FILEGROWTH = 1MB
);
GO

ALTER DATABASE [BlobStore1]
ADD FILE
(
    NAME = N'FS3',
    FILENAME = N'C:\BlobStore\FS3',
    MAXSIZE = 100MB
)
TO FILEGROUP [FS];
GO

* SQL Database *

 

SQL Database

Överblick

I Azure SQL Database kan den här instruktionen användas med en Azure SQL-server för att skapa en enskild databas eller en databas i en elastisk pool. Med den här instruktionen anger du databasnamn, sortering, maximal storlek, utgåva, tjänstmål och, om tillämpligt, den elastiska poolen för den nya databasen. Den kan också användas för att skapa databasen i en elastisk pool. Dessutom kan den användas för att skapa en kopia av databasen på en annan SQL Database-server.

Syntax

Skapa en databas

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

CREATE DATABASE database_name [ COLLATE collation_name ]
{
  (<edition_options> [, ...n])
}
[ WITH <with_options> [,..n]]
[;]

<with_options> ::=
{
    CATALOG_COLLATION = { DATABASE_DEFAULT | SQL_Latin1_General_CP1_CI_AS }
  | BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' | 'GEOZONE' }
  | LEDGER = {ON | OFF }
}

<edition_options> ::=
{

  MAXSIZE = { 100 MB | 500 MB | 1 ... 1024 ... 4096 GB }
  | ( EDITION = { 'Basic' | 'Standard' | 'Premium' | 'GeneralPurpose' | 'BusinessCritical' | 'Hyperscale' }
  | 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>) } })
}

Kopiera en databas

CREATE DATABASE database_name
    AS COPY OF [source_server_name.] source_database_name
    [ ( SERVICE_OBJECTIVE =
      { 'Basic' |'S0' | 'S1' | 'S2' | 'S3'| 'S4'| 'S6'| 'S7'| 'S9'| 'S12'
      | 'P1' | 'P2' | 'P4'| 'P6' | 'P11' | 'P15'
      | 'GP_Gen5_n'
      | 'GP_Fsv2_n'
      | 'GP_S_Gen5_n'
      | 'BC_Gen5_n'
      | 'BC_M_n'
      | 'HS_Gen5_n'
      | 'HS_S_Gen5_n'
      | 'HS_PRMS_n'
      | 'HS_MOPRMS_n'
      | { ELASTIC_POOL(name = <elastic_pool_name>) } })
   ]
   [ WITH ( BACKUP_STORAGE_REDUNDANCY = { 'LOCAL' | 'ZONE' | 'GEO' } ) ]
[;]

Argument

database_name

Namnet på den nya databasen. Det här namnet måste vara unikt på SQL Server och följa SQL Server-reglerna för identifierare. Mer information finns i Identifierare.

Collation_name

Anger standardsortering för databasdata. Ange CATALOG_COLLATION för systemmetadata, till exempel objektidentifierare.

Sorteringsnamnet kan vara antingen ett Windows-sorteringsnamn eller ett SQL-sorteringsnamn. Om den inte anges tilldelas databasen standardsortering, vilket är SQL_Latin1_General_CP1_CI_AS.

Mer information om Windows- och SQL-sorteringsnamnen finns COLLATE (Transact-SQL).

CATALOG_COLLATION

Anger standardsortering för metadatakatalogen. Argumentet CATALOG_COLLATION är endast tillgängligt när databasen skapas och kan inte ändras när den har skapats.

Som standard sorteras metadatakatalogen för systemobjektnamn till SQL_Latin1_General_CP1_CI_AS sortering. Det här är standardinställningen för Azure SQL Database om CATALOG_COLLATION är ospecificerad.

DATABASE_DEFAULT anger att metadatakatalogen som används för systemvyer och systemtabeller ska sorteras för att matcha sortering för databasen. Om du vill att objektidentifierare i systemmetadata ska följa samma sortering som data bör du skapa databasen WITH CATALOG_COLLATION = DATABASE_DEFAULT.

  • Du kanske vill ha olika sortering för data- och objektidentifierare. I följande exempel skapas databasen med en skiftlägeskänslig sortering för raddata, men använder standardinställningen SQL_Latin1_General_CP1_CI_AS skiftlägesokänslig sortering för objektidentifierare.

    CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    
  • Om du vill att både data och systemmetadata ska använda samma sortering anger du WITH CATALOG_COLLATION = DATABASE_DEFAULT. I följande exempel skapas databasen med en skiftlägeskänslig sortering som används för objektidentifierare.

    CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    WITH CATALOG_COLLATION = DATABASE_DEFAULT
    

BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | 'ZONE' | 'GEO'}

Anger hur återställning till tidpunkt och långsiktiga kvarhållningssäkerhetskopior för en databas replikeras. Geo-återställning eller möjlighet att återställa från regionalt avbrott är endast tillgängligt när databasen skapas med GEO redundans för säkerhetskopieringslagring. Om inte uttryckligen anges använder databaser som skapats med T-SQL geo-redundant säkerhetskopieringslagring.

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.

När du skapar en databas som en kopia av en annan databas med AS COPY OFstöds att ange alternativ och ska omslutas med parenteser. Till exempel WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

LEDGER = {ON | AV }

När värdet är inställt på ONskapar den en transaktionsregisterdatabas där integriteten för alla användardata skyddas. Endast transaktionsregistertabeller kan skapas i en transaktionsregisterdatabas. Standardvärdet är OFF. Det går inte att ändra värdet för alternativet LEDGER när databasen har skapats. Mer information finns i Konfigurera en transaktionsregisterdatabas.

MAXSIZE

Anger den maximala storleken på databasen. MAXSIZE måste vara giltigt för angiven VERSION (tjänstnivå).

Följande är de MAXSIZE-värden som stöds och standardvärdena (D) för tjänstnivåerna.

Not

Argumentet MAXSIZE gäller inte för enskilda databaser på tjänstnivån Hyperskala. Databaser på en hyperskalanivå 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 för enkla databaser och pooldatabaser på en SQL Database-server

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

* 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 MAXSIZE värde anges när du använder modellen med virtuella kärnor är standardvärdet 32 GB. Mer information om resursbegränsningar för vCore-modellen finns i resursbegränsningar för virtuella kärnor.

UTGÅVA

Anger tjänstnivån för databasen.

Enkla databaser och pooldatabaser. De tillgängliga värdena är: "Basic", "Standard", "Premium", "GeneralPurpose", "BusinessCritical" och "Hyperskala".

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. Om till exempel EDITION är inställt på Standard och MAXSIZE inte har angetts, ställs MAXSIZE automatiskt in på 250 MB.
  • Om varken MAXSIZE eller EDITION har angetts är EDITION inställt på GeneralPurposeoch MAXSIZE är inställt på 32 GB.

SERVICE_OBJECTIVE

Anger beräkningsstorlek och tjänstmål.

  • För DTU-inköpsmodell: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15
  • För den senaste köpmodellen för virtuella kärnor 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 databaser eller resursgränser för elastiska pooler.
    • 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.

Beskrivningar av tjänstmål och mer information om kombinationer av storlek, utgåvor och tjänstmål finns i Azure SQL Database-tjänstnivåer. Om den angivna SERVICE_OBJECTIVE inte stöds av EDITION får du ett fel. Om du vill ändra SERVICE_OBJECTIVE-värdet från en nivå till en annan (till exempel från S1 till P1) måste du också ändra värdet FÖR EDITION. Stöd för PRS-tjänstmål har tagits bort.

ELASTIC_POOL (namn = <elastic_pool_name>)

gäller endast för: enkla databaser och pooldatabaser. Gäller inte för databaser på tjänstnivån Hyperskala. Om du vill skapa en ny databas i en elastisk databaspool anger du databasens SERVICE_OBJECTIVE till ELASTIC_POOL och anger namnet på poolen. Mer information finns i Skapa och hantera en elastisk SQL Database-pool.

SOM KOPIA AV [source_server_name.]source_database_name

gäller endast för: enkla databaser och pooldatabaser.

Använd AS COPY OF för att kopiera en databas till samma eller en annan SQL Database-server.

När du skapar en databas som en kopia av en annan databas med AS COPY OFstöds att ange alternativ och ska omslutas med parenteser. Till exempel WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

source_server_name Namnet på SQL Database-servern där källdatabasen finns. Den här parametern är valfri när källdatabasen och måldatabasen ska finnas på samma SQL Database-server.

Not

Argumentet AS COPY OF stöder inte fullständigt kvalificerade unika domännamn. Om serverns fullständigt kvalificerade domännamn med andra ord är serverName.database.windows.netanvänder du bara serverName under databaskopian.

source_database_name

Namnet på databasen som ska kopieras.

Anmärkningar

Databaser i Azure SQL Database har flera standardinställningar som anges när databasen skapas. Mer information om dessa standardinställningar finns i listan med värden i DATABASEPROPERTYEX.

MAXSIZE ger möjlighet att begränsa databasens storlek. Om databasens storlek når MAXSIZEfår du felkoden 40544. När detta inträffar kan du inte infoga eller uppdatera data eller skapa nya objekt (till exempel tabeller, lagrade procedurer, vyer och funktioner). Du kan dock fortfarande läsa och ta bort data, trunkera tabeller, ta bort tabeller och index och återskapa index. Du kan sedan uppdatera MAXSIZE till ett värde som är större än din aktuella databasstorlek eller ta bort vissa data för att frigöra lagringsutrymme. Det kan ta upp till 15 minuter innan du kan infoga nya data.

Om du vill ändra värdena för storlek, utgåva eller tjänstmål senare använder du ALTER DATABASE (Azure SQL Database).

Databaskopior

gäller endast för: enkla databaser och pooldatabaser.

Att kopiera en databas med hjälp av instruktionen CREATE DATABASE är en asynkron åtgärd. Därför behövs ingen anslutning till SQL Database-servern under hela kopieringsprocessen. Instruktionen CREATE DATABASE returnerar kontrollen till användaren efter att posten i sys.databases har skapats men innan databaskopieringsåtgärden är klar. Med andra ord returnerar CREATE DATABASE-instruktionen korrekt när databaskopian fortfarande pågår.

  • Övervaka kopieringsprocessen på en SQL Database-server: Fråga efter kolumnerna percentage_complete eller replication_state_desc i dm_database_copies eller kolumnen state i sys.databases-vyn. Vyn sys.dm_operation_status kan användas och returnerar status för databasåtgärder inklusive databaskopiering.

När kopieringsprocessen slutförs är måldatabasen transaktionsmässigt konsekvent med källdatabasen.

Följande syntax och semantiska regler gäller för din användning av argumentet AS COPY OF:

  • Källservernamnet och servernamnet för kopieringsmålet kan vara samma eller annorlunda. När de är likadana är den här parametern valfri och serverkontexten för den aktuella sessionen används som standard.
  • Käll- och måldatabasnamnen måste anges, vara unika och följa SQL Server-reglerna för identifierare. Mer information finns i Identifierare.
  • Instruktionen CREATE DATABASE måste köras i kontexten för den master databasen på SQL Database-servern där den nya databasen skapas.
  • När kopieringen är klar måste måldatabasen hanteras som en oberoende databas. Du kan köra ALTER DATABASE- och DROP DATABASE-instruktionerna mot den nya databasen oberoende av källdatabasen. Du kan också kopiera den nya databasen till en annan ny databas.
  • Källdatabasen kan fortsätta att nås medan databaskopian pågår.

Mer information finns i Skapa en kopia av en Azure SQL-databas med Transact-SQL-.

Viktig

Som standard skapas databaskopian med samma redundans för lagring av säkerhetskopior som källdatabasen.

Behörigheter

Om du vill skapa en databas måste inloggningen vara något av följande huvudnamn:

  • Huvudkontoinloggningen på servernivå
  • Microsoft Entra-administratören för den logiska servern i Azure
  • En inloggning som är medlem i dbmanager databasrollen

Ytterligare krav för användning av CREATE DATABASE ... AS COPY OF syntax: Inloggningen som kör -instruktionen på den lokala servern måste också vara minst db_owner på källservern. Om inloggningen baseras på SQL Server-autentisering måste inloggningen som kör -instruktionen på den lokala servern ha en matchande inloggning på SQL Database-källservern med ett identiskt namn och lösenord.

Exempel

Enkelt exempel

Ett enkelt exempel för att skapa en databas.

CREATE DATABASE TestDB1;

Enkelt exempel med utgåva

Ett enkelt exempel för att skapa en databas för generell användning.

CREATE DATABASE TestDB2
( EDITION = 'GeneralPurpose' );

Exempel med ytterligare alternativ

Ett exempel med flera alternativ.

CREATE DATABASE hito
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS
( MAXSIZE = 500 MB, EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' ) ;

Skapa en databaskopia

Ett exempel på hur du skapar en kopia av en databas.

gäller endast för: enkla databaser och pooldatabaser.

CREATE DATABASE escuela
AS COPY OF school;

Skapa en databas i en elastisk pool

Skapar en ny databas i poolen med namnet S3M100:

gäller endast för: enkla databaser och pooldatabaser.

CREATE DATABASE db1 ( SERVICE_OBJECTIVE = ELASTIC_POOL ( name = S3M100 ) ) ;

Skapa en kopia av en databas på en annan logisk server

I följande exempel skapas en kopia av db_original-databasen med namnet db_copy i tjänsten Generell användning för en enskild databas. Detta gäller oavsett om db_original finns i en elastisk pool eller en beräkningsstorlek (tjänstmål) för en enskild databas.

gäller endast för: enkla databaser och pooldatabaser.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original ( EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' );

I följande exempel skapas en kopia av db_original-databasen med namnet db_copy i en elastisk pool med namnet ep1. Detta gäller oavsett om db_original finns i en elastisk pool eller en beräkningsstorlek (tjänstmål) för en enskild databas. Om db_original finns i en elastisk pool med ett annat namn skapas db_copy fortfarande i ep1.

gäller endast för: enkla databaser och pooldatabaser.

CREATE DATABASE db_copy
  AS COPY OF ozabzw7545.db_original
  (SERVICE_OBJECTIVE = ELASTIC_POOL( name = ep1 ) ) ;

Skapa databas med angivet katalogsorteringsvärde

I följande exempel anges katalogsortering till DATABASE_DEFAULT när databasen skapas, vilket anger att katalogsortering ska vara samma som databassortering.

CREATE DATABASE TestDB3 COLLATE Japanese_XJIS_140 (MAXSIZE = 100 MB, EDITION = 'Basic')
  WITH CATALOG_COLLATION = DATABASE_DEFAULT;

Skapa databas med zonredundans för säkerhetskopior

I följande exempel anges zonredundans för databassäkerhetskopior. Både återställningssäkerhetskopior vid tidpunkt och långsiktiga kvarhållningssäkerhetskopior (om de konfigureras) använder samma redundans för lagring av säkerhetskopior.

CREATE DATABASE test_zone_redundancy 
  WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';

Skapa en transaktionsregisterdatabas

CREATE DATABASE MyLedgerDB ( EDITION = 'GeneralPurpose' ) WITH LEDGER = ON;

Skapa som en kopia av en databas när du ändrar alternativ

I följande exempel anges olika alternativ för den nya kopian av en databas, inklusive en annan tjänstnivå och redundansinställningar för säkerhetskopieringslagring. Som standard skapas databaskopian med samma inställningar som källdatabasen.

CREATE DATABASE copy_testdb
AS COPY OF [test_db]
  (EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8')
  WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');

* SQL Managed Instance *

 

Azure SQL Managed Instance

Överblick

I Azure SQL Managed Instance används den här instruktionen för att skapa en databas. När du skapar en databas på en hanterad instans anger du databasnamnet och sorteringen.

Syntax

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

CREATE DATABASE database_name [ COLLATE collation_name ]
[ WITH <with_options> [,..n]]
[;]

<with_options> ::=
{
  LEDGER = { ON | OFF }
}

Viktig

Om du vill lägga till filer eller ange inneslutning för en databas i en hanterad instans använder du instruktionen ALTER DATABASE.

För SQL-hanterade instanser är den inledande MAXSIZE implicit inställd på den aktuella diskstorleken och ändras inte automatiskt när du utökar diskstorleken från Azure-portalen. När du har utökat disken bör du också utöka MAXSIZE med ALTER DATABASE- för att undvika fullständiga fel i databasfilen.

Argument

database_name

Namnet på den nya databasen. Det här namnet måste vara unikt på SQL-servern och följa SQL Server-reglerna för identifierare. Mer information finns i Identifierare.

Collation_name

Anger standardsortering för databasen. Sorteringsnamnet kan vara antingen ett Windows-sorteringsnamn eller ett SQL-sorteringsnamn. Om den inte anges tilldelas databasen standardsortering, vilket är SQL_Latin1_General_CP1_CI_AS.

Mer information om Windows- och SQL-sorteringsnamnen finns COLLATE (Transact-SQL).

LEDGER = {ON | OFF }

När värdet är inställt på ONskapar den en transaktionsregisterdatabas där integriteten för alla användardata skyddas. Endast transaktionsregistertabeller kan skapas i en transaktionsregisterdatabas. Standardvärdet är OFF. Det går inte att ändra värdet för alternativet LEDGER när databasen har skapats. Mer information finns i Konfigurera en transaktionsregisterdatabas.

Anmärkningar

Databaser i Azure SQL Database har flera standardinställningar som anges när databasen skapas. Mer information om dessa standardinställningar finns i listan med värden i DATABASEPROPERTYEX.

Viktig

CREATE DATABASE-instruktionen måste vara den enda instruktionen i en Transact-SQL batch.

Följande är CREATE DATABASE begränsningar:

  • Filer och filgrupper kan inte definieras.

  • WITHalternativ stöds inte, förutom WITH LEDGER.

    Dricks

    Som en lösning använder du ALTER DATABASE. efter CREATE DATABASE för att ange databasalternativ och lägga till filer.

Behörigheter

Om du vill skapa en databas måste en inloggning vara något av följande:

  • Huvudkontoinloggningen på servernivå
  • Microsoft Entra-administratören för den logiska servern i Azure
  • En inloggning som är medlem i dbcreator databasrollen

Exempel

Enkelt exempel

Ett enkelt exempel för att skapa en databas.

CREATE DATABASE TestDB1;

Skapa en transaktionsregisterdatabas

CREATE DATABASE MyLedgerDB WITH LEDGER = ON;

* Azure Synapse
Analys *

 

Azure Synapse Analytics

Överblick

I Azure Synapse kan den här instruktionen användas med en Azure SQL Database-server för att skapa en dedikerad SQL-pool. Med den här instruktionen anger du databasnamn, sortering, maximal storlek, utgåva och tjänstmål.

  • CREATE DATABASE stöds för fristående dedikerade SQL-pooler (tidigare SQL DW) med hjälp av Gen2-tjänstnivåer.
  • CREATE DATABASE stöds inte för dedikerade SQL-pooler på en Azure Synapse Analytics-arbetsyta. I stället använda Azure-portalen.
  • CREATE DATABASE stöds för serverlösa SQL-pooler i Azure Synapse Analytics.

Syntax

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

CREATE DATABASE database_name [ COLLATE collation_name ]
(
    [ MAXSIZE = {
          250 | 500 | 750 | 1024 | 5120 | 10240 | 20480 | 30720
        | 40960 | 51200 | 61440 | 71680 | 81920 | 92160 | 102400
        | 153600 | 204800 | 245760
      } GB ,
    ]
    EDITION = 'datawarehouse',
    SERVICE_OBJECTIVE = {
          'DW100c' | 'DW200c' | 'DW300c' | 'DW400c' | 'DW500c'
        | 'DW1000c' | 'DW1500c' | 'DW2000c' | 'DW2500c' | 'DW3000c' | 'DW5000c'
        | 'DW6000c' | 'DW7500c' | 'DW10000c' | 'DW15000c' | 'DW30000c'
    }
)
[;]

Argument

database_name

Namnet på den nya databasen. Det här namnet måste vara unikt på SQL-servern, som kan vara värd för båda databaserna i Azure SQL Database- och Azure Synapse Analytics-databaser och följa SQL Server-reglerna för identifierare. Mer information finns i Identifierare.

collation_name

Anger standardsortering för databasen. Sorteringsnamnet kan vara antingen ett Windows-sorteringsnamn eller ett SQL-sorteringsnamn. Om den inte anges tilldelas databasen standardsortering, vilket är SQL_Latin1_General_CP1_CI_AS.

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

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.

EDITION

Anger tjänstnivån för databasen. För Azure Synapse Analytics använder du datawarehouse.

SERVICE_OBJECTIVE

Anger beräkningsstorleken (tjänstmålet). Tjänstnivåerna för Gen2 mäts i beräkningsdatalagerenheter (cDWU), till exempel DW2000c. Gen1-tjänstnivåer mäts i DWU:er, till exempel DW2000. Mer information om tjänstmål för Azure Synapse finns i Data Warehouse Units (DWU:er). Gen1-tjänstmål (visas inte längre) stöds inte längre, du kan få ett fel: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.

Anmärkningar

Använd DATABASEPROPERTYEX för att se databasegenskaperna.

Använd ALTER DATABASE – Azure Synapse Analytics för att ändra maxstorleken eller tjänstmålvärdena senare.

Azure Synapse är inställt på COMPATIBILITY_LEVEL 130 och kan inte ändras. Mer information finns i Förbättrad frågeprestanda med kompatibilitetsnivå 130 i Azure SQL Database.

Behörigheter

Nödvändiga behörigheter:

  • Huvudinloggning på servernivå, skapad av etableringsprocessen eller
  • Medlem i dbmanager databasroll.

Felhantering

Om storleken på databasen når MAXSIZE får du felkoden 40544. När detta inträffar kan du inte infoga och uppdatera data eller skapa nya objekt (till exempel tabeller, lagrade procedurer, vyer och funktioner). Du kan fortfarande läsa och ta bort data, trunkera tabeller, ta bort tabeller och index och återskapa index. Du kan sedan uppdatera MAXSIZE till ett värde som är större än din aktuella databasstorlek eller ta bort vissa data för att frigöra lagringsutrymme. Det kan ta upp till 15 minuter innan du kan infoga nya data.

Begränsningar

Du måste vara ansluten till master-databasen för att skapa en ny databas.

CREATE DATABASE-instruktionen måste vara den enda instruktionen i en Transact-SQL batch.

Du kan inte ändra databassortering när databasen har skapats.

Exempel: Azure Synapse Analytics

A. Enkelt exempel

Ett enkelt exempel för att skapa en fristående dedikerad SQL-pool (tidigare SQL DW). Då skapas databasen med den minsta maxstorleken (10 240 GB), standardsortering (SQL_Latin1_General_CP1_CI_AS) och det minsta Gen2-tjänstmålet (DW100c).

CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE='DW100c');

B. Skapa en informationslagerdatabas med alla alternativ

Ett exempel på hur du skapar en fristående dedikerad SQL-pool på 10 terabyte (tidigare SQL DW).

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000c');

C. Enkelt exempel i en Serverlös SQL-pool i Synapse Analytics

Detta skapar databasen i den serverlösa poolen och anger en sortering (Latin1_General_100_CI_AS_KS_WS).

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS

* Analysplattform
System (PDW) *

 

Analysplattformssystem

Överblick

I Analytics Platform System används den här instruktionen för att skapa en ny databas på en analysplattformssysteminstallation. Använd den här instruktionen om du vill skapa alla filer som är associerade med en installationsdatabas och ange alternativ för maximal storlek och automatisk tillväxt för databastabellerna och transaktionsloggen.

Syntax

Mer information om syntaxkonventionerna finns i Transact-SQL syntaxkonventioner.

CREATE DATABASE database_name
WITH (
    [ AUTOGROW = ON | OFF , ]
    REPLICATED_SIZE = replicated_size [ GB ] ,
    DISTRIBUTED_SIZE = distributed_size [ GB ] ,
    LOG_SIZE = log_size [ GB ] )
[;]

Argument

database_name

Namnet på den nya databasen. Mer information om tillåtna databasnamn finns i "Namngivningsregler för objekt" och "Reserverade databasnamn" i produktdokumentationen Analytics Platform System (PDW).

AUTOGROW = ON | BORT

Anger om parametrarna replicated_size, distributed_sizeoch log_size för den här databasen automatiskt kommer att växa efter behov utöver de angivna storlekarna. Standardvärdet är OFF.

Om AUTOGROW är PÅ replicated_size, distributed_sizeoch log_size växer efter behov (inte i block med den ursprungliga angivna storleken) med varje infognings-, uppdaterings- eller annan åtgärd som kräver mer lagringsutrymme än vad som redan har allokerats.

Om AUTOGROW är AV växer inte storlekarna automatiskt. Analytics Platform System (PDW) returnerar ett fel när du försöker utföra en åtgärd som kräver att replicated_size, distributed_sizeeller log_size växer utöver det angivna värdet.

AUTOGROW är antingen PÅ för alla storlekar eller AV för alla storlekar. Det går till exempel inte att ställa in AUTOGROW PÅ för log_size, men inte ange den för replicated_size.

replicated_size [ GB ]

Ett positivt tal. Anger storleken (i heltal eller decimal gigabyte) för det totala utrymmet som allokerats till replikerade tabeller och motsvarande data på varje beräkningsnod. För lägsta och högsta replicated_size krav, se "Lägsta och högsta värden" i produktdokumentationen för Analytics Platform System (PDW).

Om AUTOGROW är PÅ tillåts replikerade tabeller att växa över den här gränsen.

Om AUTOGROW är AV returneras ett fel om en användare försöker skapa en ny replikerad tabell, infoga data i en befintlig replikerad tabell eller uppdatera en befintlig replikerad tabell på ett sätt som ökar storleken bortom replicated_size.

distributed_size [ GB ]

Ett positivt tal. Storleken, i heltal eller decimal gigabyte, för det totala utrymmet som allokerats till distribuerade tabeller (och motsvarande data) över enheten. För lägsta och högsta distributed_size krav, se "Lägsta och högsta värden" i produktdokumentationen för Analytics Platform System (PDW).

Om AUTOGROW är PÅ tillåts distribuerade tabeller att växa över den här gränsen.

Om AUTOGROW är AV returneras ett fel om en användare försöker skapa en ny distribuerad tabell, infoga data i en befintlig distribuerad tabell eller uppdatera en befintlig distribuerad tabell på ett sätt som ökar storleken bortom distributed_size.

log_size [ GB ]

Ett positivt tal. Storleken (i heltal eller decimal gigabyte) för transaktionsloggen över hela installationen.

För lägsta och högsta log_size krav, se "Lägsta och högsta värden" i produktdokumentationen för Analytics Platform System (PDW).

Om AUTOGROW är PÅ kan loggfilen växa över den här gränsen. Använd instruktionen DBCC SHRINKLOG (Azure Synapse Analytics) för att minska storleken på loggfilerna till den ursprungliga storleken.

Om AUTOGROW är AV returneras ett fel till användaren för alla åtgärder som skulle öka loggstorleken på en enskild beräkningsnod utöver log_size.

Behörigheter

Kräver CREATE ANY DATABASE behörighet i master-databasen eller medlemskap i sysadmin fast serverroll.

I följande exempel ges behörighet att skapa en databas till databasanvändaren Fay.

USE master;
GO
GRANT CREATE ANY DATABASE TO [Fay];
GO

Anmärkningar

Databaser skapas med databaskompatibilitetsnivå 120, vilket är kompatibilitetsnivån för SQL Server 2014 (12.x). Detta säkerställer att databasen kommer att kunna använda alla SQL Server 2014-funktioner (12.x) som PDW använder.

Begränsningar och begränsningar

CREATE DATABASE-instruktionen tillåts inte i en explicit transaktion. Mer information finns i -instruktioner.

Information om lägsta och högsta begränsningar för databaser finns i "Lägsta och högsta värden" i produktdokumentationen för Analytics Platform System (PDW).

När en databas skapas måste det finnas tillräckligt med ledigt utrymme på varje beräkningsnod för att allokera den sammanlagda summan av följande storlekar:

  • SQL Server-databas med tabeller storleken på replicated_table_size.
  • SQL Server-databas med tabeller storleken på (distributed_table_size /antal beräkningsnoder).
  • SQL Server loggar storleken på (log_size/antal beräkningsnoder).

Låsning

Tar ett delat lås på DATABASE-objektet.

Metadata

När åtgärden har slutförts visas en post för den här databasen i sys.databases och sys.objects metadatavyer.

Exempel: Analysplattformssystem (PDW)

A. Exempel på grundläggande databasskapande

I följande exempel skapas databasen mytest med en lagringsallokering på 100 GB per beräkningsnod för replikerade tabeller, 500 GB per installation för distribuerade tabeller och 100 GB per installation för transaktionsloggen. I det här exemplet är AUTOGROW inaktiverat som standard.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB );

I följande exempel skapas databasen mytest med samma parametrar som ovan, förutom att AUTOGROW är aktiverat. På så sätt kan databasen växa utanför de angivna storleksparametrarna.

CREATE DATABASE mytest
  WITH
    (AUTOGROW = ON,
    REPLICATED_SIZE = 100 GB,
    DISTRIBUTED_SIZE = 500 GB,
    LOG_SIZE = 100 GB);

B. Skapa en databas med partiella gigabytestorlekar

I följande exempel skapas databasen mytest, med AUTOGROW av, en lagringsallokering på 1,5 GB per beräkningsnod för replikerade tabeller, 5,25 GB per installation för distribuerade tabeller och 10 GB per installation för transaktionsloggen.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 1.5 GB,
    DISTRIBUTED_SIZE = 5.25 GB,
    LOG_SIZE = 10 GB);