Sdílet prostřednictvím


VYTVOŘIT DATABÁZI

Vytvoří novou databázi.

Vyberte jednu z následujících karet pro syntaxi, argumenty, poznámky, oprávnění a příklady pro konkrétní verzi SQL, se kterou pracujete.

Výběr produktu

V následujícím řádku vyberte název produktu, který vás zajímá, a zobrazí se jenom informace o daném produktu.

* SQL Server *

SQL Database

spravované instance SQL

SQL Server

Přehled

V SQL Serveru tento příkaz vytvoří novou databázi a soubory použité a jejich skupiny souborů. Dá se také použít k vytvoření snímku databáze nebo k připojení databázových souborů k vytvoření databáze z odpojených souborů jiné databáze.

Syntaxe

Vytvořte databázi.

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

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 ]
}

Připojení databáze:

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
}

Vytvoření snímku databáze:

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

Argumenty

database_name

Název nové databáze. Názvy databází musí být jedinečné v rámci instance SQL Serveru a musí být v souladu s pravidly pro identifikátory .

database_name může být maximálně 128 znaků, pokud není pro soubor protokolu zadaný logický název. Pokud není zadaný název logického souboru protokolu, SQL Server vygeneruje logical_file_name a os_file_name protokolu připojením přípony k database_name. To omezuje database_name na 123 znaků, aby vygenerovaný název logického souboru nebyl delší než 128 znaků.

Pokud není zadaný název datového souboru, SQL Server používá database_name jako logical_file_name i jako os_file_name. Výchozí cesta se získá z registru. Výchozí cestu lze změnit na vlastnosti serveru (stránka Nastavení databáze) v sadě Management Studio. Změna výchozí cesty vyžaduje restartování SQL Serveru.

ZAHRNUTÍ = { NONE | PARTIAL }

platí pro: SQL Server 2012 (11.x) a novější verze

Určuje stav zahrnutí databáze.

  • NONE = databáze, která není obsažena.
  • PARTIAL = částečně obsažená databáze.

NA

Určuje, že diskové soubory použité k ukládání datových oddílů databáze, datových souborů, jsou explicitně definovány. ON je vyžadována v případě, že následuje čárkami oddělený seznam <filespec> položek, které definují datové soubory pro primární skupinu souborů. Za seznamem souborů v primární skupině souborů může následovat volitelný seznam <filegroup> položek oddělených čárkami, které definují uživatelské skupiny souborů a jejich soubory.

PRIMÁRNÍ

Určuje, že přidružený <filespec> seznam definuje primární soubor. První soubor určený v <filespec> položce v primární skupině souborů se stane primárním souborem. Databáze může mít pouze jeden primární soubor. Další informace najdete v tématu Soubory databáze a skupiny souborů.

Pokud PRIMARY není zadaný, první soubor uvedený v CREATE DATABASE příkazu se stane primárním souborem.

PŘIHLÁSIT SE

Určuje, že diskové soubory použité k uložení protokolu databáze, souborů protokolu, jsou explicitně definovány. LOG ON následuje čárkami oddělený <filespec> seznam položek, které definují soubory protokolu. Pokud LOG ON není zadaný, vytvoří se automaticky jeden soubor protokolu, který má velikost 25 procent součtu všech datových souborů pro databázi, nebo 512 kB podle toho, co je větší. Tento soubor se umístí do výchozího umístění souboru protokolu. Informace o tomto umístění najdete v tématu Zobrazení nebo změna výchozích umístění pro soubory dat a protokolů.

LOG ON nelze zadat u snímku databáze.

COLLATION_NAME COLLATE

Určuje výchozí kolaci databáze. Název kolace může být buď název kolace Systému Windows, nebo název kolace SQL. Pokud není zadáno, je databázi přiřazena výchozí kolace instance SYSTÉMU SQL Server. Název kolace nelze zadat na snímku databáze.

Název kolace nelze zadat pomocí FOR ATTACH klauzulí nebo FOR ATTACH_REBUILD_LOG klauzulí. Informace o tom, jak změnit řazení připojené databáze, naleznete v tématu Nastavení nebo změna řazení databáze.

Další informace o názvech kolace Windows a SQL najdete v tématu COLLATE.

Poznámka

Obsažené databáze se kompletují jinak než databáze, které nejsou obsažené. Další informace najdete v tématu Kolace databáze s omezením.

Možnost <WITH>

<filestream_option>

  • NON_TRANSACTED_ACCESS = { VYPNUTO | READ_ONLY | PLNÝ }

    platí pro: SQL Server 2012 (11.x) a novější verze

    Určuje úroveň nekonakčního přístupu FILESTREAM k databázi.

    Hodnota Popis
    OFF Neaktuální přístup je zakázaný.
    READONLY Data FILESTREAM v této databázi lze číst neaktuálními procesy.
    FULL Je povolen úplný neaktuální přístup k filetables FILESTREAM.
  • DIRECTORY_NAME = <directory_name>

    platí pro: SQL Server 2012 (11.x) a novější verze

    Název adresáře kompatibilního s Windows. Tento název by měl být jedinečný mezi všemi názvy Database_Directory v instanci SQL Serveru. Porovnání jedinečnosti nerozlišuje malá a velká písmena bez ohledu na nastavení kolace SQL Serveru. Tuto možnost byste měli nastavit před vytvořením tabulky FileTable v této databázi.

    Následující možnosti jsou povoleny pouze v případech, kdy CONTAINMENT je nastavena na PARTIALhodnotu . Pokud CONTAINMENT je nastavená hodnota , dojde k NONEchybám.

DEFAULT_FULLTEXT_LANGUAGE = <lcid> | název jazyka <> |< alias jazyka >

platí pro: SQL Server 2012 (11.x) a novější verze

Úplný popis této možnosti najdete v tématu Konfigurace serveru: Výchozí fulltextový jazyk .

DEFAULT_LANGUAGE = <lcid> | název jazyka <> |< alias jazyka >

platí pro: SQL Server 2012 (11.x) a novější verze

Úplný popis této možnosti najdete v tématu Konfigurace serveru: výchozí jazyk .

NESTED_TRIGGERS = { VYPNUTO | ZAPNUTO }

platí pro: SQL Server 2012 (11.x) a novější verze

Úplný popis této možnosti najdete v tématu Konfigurace serveru: vnořené triggery .

TRANSFORM_NOISE_WORDS = { VYPNUTO | ZAPNUTO }

platí pro: SQL Server 2012 (11.x) a novější verze

Viz Konfigurace serveru: Transformace slov šumu pro úplný popis této možnosti.

TWO_DIGIT_YEAR_CUTOFF = { 2049 | <libovolný rok mezi 1753 a 9999> }

Čtyři číslice představující rok 2049 je výchozí hodnota. Úplný popis této možnosti najdete v části Konfigurace serveru: dvouciferný rok .

DB_CHAINING { VYPNUTO | ZAPNUTO }

Po ON zadání může být databáze zdrojem nebo cílem řetězu vlastnictví mezi databázemi.

Pokud OFFse databáze nemůže účastnit řetězení vlastnictví mezi databázemi. Výchozí hodnota je OFF.

Důležitý

Instance SQL Serveru rozpozná toto nastavení, pokud je možnost řetězení vlastnictví mezi databázemi nastavená na 0 (OFF). Pokud je řetězení vlastnictví mezi databázemi 1 (ON), můžou se všechny uživatelské databáze účastnit řetězů vlastnictví napříč databázemi bez ohledu na hodnotu této možnosti. Tato možnost je nastavena pomocí sp_configure.

Chcete-li nastavit tuto možnost, vyžaduje členství v pevné roli serveru správce systému . Tuto DB_CHAINING možnost nelze nastavit u těchto systémových databází: master, model, tempdb.

DŮVĚRYHODNÉ { VYPNUTO | ON }

Po ON zadání můžou databázové moduly (například zobrazení, uživatelem definované funkce nebo uložené procedury), které používají kontext zosobnění, přistupovat k prostředkům mimo databázi.

Pokud OFFdatabázové moduly v kontextu zosobnění nemají přístup k prostředkům mimo databázi. Výchozí hodnota je OFF.

TRUSTWORTHY je nastavena na OFF pokaždé, když je databáze připojena.

Ve výchozím nastavení jsou všechny systémové databáze s výjimkou msdb databáze nastaveny TRUSTWORTHY na OFFhodnotu . Hodnotu nelze změnit pro model databáze a tempdb databáze. Doporučujeme, abyste nikdy nenastavili TRUSTWORTHY možnost ON pro master databázi.

PERSISTENT_LOG_BUFFER = ZAPNUTO ( DIRECTORY_NAME = 'directory_name' )

Platí pro: SQL Server 2017 (14.x) a novější verze

Pokud je tato možnost zadaná, vyrovnávací paměť transakčního protokolu se vytvoří na svazku umístěném na diskovém zařízení zálohovaného pamětí třídy úložiště (NVDIMM-N nevolatilním úložištěm), označované také jako trvalá vyrovnávací paměť protokolu. Další informace naleznete v tématu Akcelerace latence potvrzení transakce pomocí paměti třídy úložiště a Přidat trvalou vyrovnávací paměť protokolu do databáze.

LEDGER = { ON | VYPNUTO }

Při nastavení na ONvytvoří databázi registru, ve které je chráněna integrita všech uživatelských dat. V databázi registru lze vytvořit pouze tabulky registru. Výchozí hodnota je OFF. Hodnotu LEDGER možnosti nelze po vytvoření databáze změnit. Další informace naleznete v tématu Konfigurace databáze registru.

CREATE DATABASE ... PRO PŘIPOJENÍ [ S <attach_database_option> ]

Určuje, že databázi vytvoří připojení existující sadu souborů operačního systému. Musí existovat <filespec> položka, která určuje primární soubor. Jediné další <filespec> požadované položky jsou ty pro všechny soubory, které mají jinou cestu, než kdy byla databáze poprvé vytvořena nebo naposledy připojena. Pro <filespec> tyto soubory musí být zadána položka.

FOR ATTACH požaduje:

  • Všechny datové soubory (MDF a NDF) musí být dostupné.
  • Pokud existuje více souborů protokolu, musí být všechny dostupné.

Pokud databáze pro čtení a zápis obsahuje jeden soubor protokolu, který je momentálně nedostupný, a pokud byla databáze vypnuta bez uživatelů nebo otevřených transakcí před operací ATTACH, FOR ATTACH automaticky znovu sestaví soubor protokolu a aktualizuje primární soubor. Naproti tomu u databáze jen pro čtení nejde protokol znovu vytvořit, protože primární soubor nejde aktualizovat. Proto když připojíte databázi jen pro čtení s protokolem, který není k dispozici, musíte zadat soubory protokolu nebo soubory v klauzuli FOR ATTACH .

Poznámka

V dřívějších verzích nelze připojit databázi vytvořenou novější verzí SQL Serveru.

V SYSTÉMU SQL Server jsou všechny fulltextové soubory, které jsou součástí připojené databáze, připojeny k databázi. Pokud chcete zadat novou cestu fulltextového katalogu, zadejte nové umístění bez názvu fulltextového souboru operačního systému. Další informace viz příklady.

Připojení databáze, která obsahuje možnost FILESTREAM "Název adresáře", vyzve SQL Server k ověření, zda Database_Directory je název jedinečný. Pokud ne, ATTACH operace selže s chybou . FILESTREAM Database_Directory name is not unique in this SQL Server instance Chcete-li se této chybě vyhnout, volitelný parametr, directory_name, by měl být předán do této operace.

FOR ATTACH nelze zadat u snímku databáze.

FOR ATTACH může zadat RESTRICTED_USER možnost. RESTRICTED_USER umožňuje připojení k databázi pouze členům db_owner pevné databázové role a role dbcreatoru a správce systému s pevnými servery, ale neomezuje jejich počet. Pokusy nekvalifikovaných uživatelů jsou odmítnuty.

<service_broker_option>

Pokud databáze používá Service Broker, použijte WITH <service_broker_option> ve své FOR ATTACH klauzuli:

Řídí doručování zpráv Service Broker a identifikátor služby Service Broker pro databázi. Možnosti Service Broker lze zadat pouze při FOR ATTACH použití klauzule.

ENABLE_BROKER

Určuje, že je pro zadanou databázi povolená služba Service Broker. To znamená, že se spustí doručování zpráv a is_broker_enabled se v zobrazení katalogu sys.databases nastaví na hodnotu true. Databáze uchovává existující identifikátor služby Service Broker.

NEW_BROKER

Vytvoří novou hodnotu service_broker_guid v sys.databases i obnovené databázi. Ukončí všechny koncové body konverzace vyčištěním. Zprostředkovatel je povolený, ale do koncových bodů vzdálené konverzace se neposílají žádná zpráva. Všechny trasy, které odkazují na starý identifikátor služby Service Broker, musí být znovu vytvořeny s novým identifikátorem.

ERROR_BROKER_CONVERSATIONS

Ukončí všechny konverzace chybou oznamující, že je databáze připojena nebo obnovena. Zprostředkovatel je zakázaný, dokud se tato operace nedokončila a pak je povolená. Databáze uchovává existující identifikátor služby Service Broker.

Při připojování replikované databáze, která byla zkopírována místo odpojení, zvažte:

  • Pokud databázi připojíte ke stejné instanci serveru a verzi jako původní databázi, nevyžadují se žádné další kroky.
  • Pokud databázi připojíte ke stejné instanci serveru, ale s upgradovanou verzí, musíte po dokončení operace připojení provést sp_vupgrade_replication upgradovat replikaci.
  • Pokud databázi připojíte k jiné instanci serveru bez ohledu na verzi, musíte po dokončení operace připojení provést sp_removedbreplication odebrat replikaci.

Poznámka

Připojení funguje s formátem úložiště vardecimal, ale databázový stroj SQL Serveru musí být upgradován na minimálně SQL Server 2005 (9.x) SP2. Databázi nemůžete připojit pomocí formátu vardecimal storage ke starší verzi SQL Serveru. Další informace o formátu vardecimal storage naleznete v tématu Komprese dat.

Při prvním připojení nebo obnovení databáze k nové instanci SQL Serveru ještě není na serveru uložená kopie hlavního klíče databáze (zašifrovaná hlavním klíčem služby). K dešifrování hlavního klíče databáze (DMK) musíte použít příkaz OPEN MASTER KEY. Po dešifrování dmK máte možnost povolit automatické dešifrování v budoucnu pomocí příkazu ALTER MASTER KEY REGENERATE pro zřízení serveru pomocí kopie DMK zašifrované pomocí hlavního klíče služby (SMK). Při upgradu databáze ze starší verze by se sada DMK měla znovu vygenerovat, aby používala novější algoritmus AES. Další informace o opětovném vygenerování DMK naleznete v tématu ALTER MASTER KEY. Doba potřebná k opětovnému vygenerování klíče DMK pro upgrade na AES závisí na počtu objektů chráněných dmK. Opětovné vygenerování klíče DMK pro upgrade na AES je nezbytné pouze jednou a nemá žádný vliv na budoucí regeneraci v rámci strategie obměny klíčů. Informace o upgradu databáze pomocí připojení naleznete v tématu Upgrade databáze pomocí odpojení a připojení.

Důležitý

Doporučujeme nepřipojovat databáze z neznámých nebo nedůvěryhodných zdrojů. Takové databáze můžou obsahovat škodlivý kód, který by mohl spouštět nezamýšlené Transact-SQL kód nebo způsobit chyby úpravou schématu nebo fyzické struktury databáze. Před použitím databáze z neznámého nebo nedůvěryhodného zdroje spusťte DBCC CHECKDB na databázi na neprodukčním serveru a také zkontrolujte kód, jako jsou uložené procedury nebo jiný uživatelem definovaný kód v databázi.

Poznámka

Při TRUSTWORTHY připojování databáze tato možnost DB_CHAINING nemá žádný vliv.

PRO ATTACH_REBUILD_LOG

Určuje, že se databáze vytvoří připojením existující sady souborů operačního systému. Tato možnost je omezená na databáze pro čtení a zápis. Musí existovat <filespec> položka určující primární soubor. Pokud chybí jeden nebo více souborů transakčního protokolu, soubor protokolu se znovu sestaví. ATTACH_REBUILD_LOG automaticky vytvoří nový 1 MB soubor protokolu. Tento soubor se umístí do výchozího umístění souboru protokolu. Informace o tomto umístění najdete v tématu Zobrazení nebo změna výchozích umístění pro soubory dat a protokolů.

Poznámka

Pokud jsou soubory protokolu k dispozici, databázový stroj tyto soubory použije místo opětovného sestavení souborů protokolu.

FOR ATTACH_REBUILD_LOG vyžaduje následující podmínky:

  • Čisté vypnutí databáze.
  • Všechny datové soubory (MDF a NDF) musí být dostupné.

Důležitý

Tato operace přeruší řetěz zálohování protokolů. Doporučujeme provést úplnou zálohu databáze ihned po dokončení operace. Další informace naleznete v tématu ZÁLOHOVÁNÍ.

Obvykle se používá při kopírování databáze pro čtení a zápis s velkým protokolem na jiný server, FOR ATTACH_REBUILD_LOG kde bude kopie použita převážně nebo pouze pro operace čtení, a proto vyžaduje méně místa v protokolu než původní databáze.

FOR ATTACH_REBUILD_LOG nelze zadat u snímku databáze.

Další informace o připojování a odpojování databází najdete v tématu Odpojení a připojení databáze (SQL Server).

<souborůpec>

Řídí vlastnosti souboru.

LOGICAL_FILE_NAME NAME

Určuje logický název souboru. NAME je vyžadováno, pokud FILENAME je specifikováno, s výjimkou zadání jedné z FOR ATTACH klauzulí. Skupinu FILESTREAM souborů nelze pojmenovat PRIMARY.

  • logical_file_name

    Logický název použitý v SQL Serveru při odkazování na soubor. Logical_file_name musí být v databázi jedinečné a dodržovat pravidla pro identifikátory . Název může být znak nebo konstanta Unicode nebo běžný identifikátor s oddělovači.

NÁZEV SOUBORU { 'os_file_name' | 'filestream_path' }

Určuje název souboru operačního systému (fyzického).

  • os_file_name

    Cesta a název souboru používaný operačním systémem při vytváření souboru. Soubor se musí nacházet na jednom z následujících zařízení: místní server, na kterém je nainstalovaný SQL Server, síť SAN (Storage Area Network) nebo síť založenou na iSCSI. Zadaná cesta musí existovat před provedením CREATE DATABASE příkazu. Další informace najdete v tématu Soubory databáze a skupiny souborů dále v tomto článku.

    SIZE, a MAXSIZE parametry lze nastavit, FILEGROWTHpokud je pro soubor zadána cesta UNC.

    Pokud je soubor v nezpracovaném oddílu, os_file_name musí zadat pouze písmeno jednotky existujícího nezpracovaného oddílu. V každém nezpracovaných oddílech je možné vytvořit pouze jeden datový soubor.

    Poznámka

    Nezpracované oddíly nejsou podporované v SQL Serveru 2014 (12.x) a novějších verzích.

    Datové soubory by neměly být vloženy do komprimovaných systémů souborů, pokud nejsou soubory sekundárními soubory jen pro čtení nebo databáze je jen pro čtení. Soubory protokolů by nikdy neměly být vloženy do komprimovaných systémů souborů.

  • filestream_path

    U skupiny souborů FILESTREAM odkazuje na cestu, FILENAME kde budou uložena data FILESTREAM. Cesta až do poslední složky musí existovat a poslední složka nesmí existovat. Pokud například zadáte cestu C:\MyFiles\MyFilestreamData, C:\MyFiles musí existovat před spuštěním ALTER DATABASE, ale MyFilestreamData složka nesmí existovat.

    Skupina souborů a soubor (<filespec>) musí být vytvořeny ve stejném příkazu.

    SIZE Vlastnosti FILEGROWTH se nevztahují na skupinu souborů FILESTREAM.

Velikost velikosti

Určuje velikost souboru.

SIZE nelze zadat, pokud je os_file_name zadána jako cesta UNC. SIZE se nevztahuje na souborovou skupinu FILESTREAM.

  • velikosti

    Počáteční velikost souboru.

    Pokud pro primární soubor není zadána velikost , použije databázový stroj velikost primárního souboru v model databázi. Výchozí velikost databáze model je 8 MB (počínaje SQL Serverem 2016 (13.x)) nebo 1 MB (pro starší verze). Pokud je zadaný sekundární datový soubor nebo soubor protokolu, ale velikost souboru není zadána, databázový stroj vytvoří soubor 8 MB (počínaje SQL Serverem 2016 (13.x)) nebo 1 MB (pro starší verze). Velikost zadaná pro primární soubor musí být alespoň tak velká jako primární soubor model databáze.

    Můžete použít přípony kilobajtů (KB), megabajt (MB), gigabajt (GB) nebo terabajt (TB). Výchozí hodnota je MB. Zadejte celé číslo. Nezahrnujte desetinné číslo. size je celočíselná hodnota. Pro hodnoty větší než 2 147 483 647 použijte větší jednotky.

MAX_SIZE MAXSIZE

Určuje maximální velikost, na kterou se může soubor zvětšit. MAXSIZE nelze zadat, pokud je os_file_name zadána jako cesta UNC.

  • max_size

    Maximální velikost souboru. Můžete použít přípony KB, MB, GB a TB. Výchozí hodnota je MB. Zadejte celé číslo. Nezahrnujte desetinné číslo. Pokud není zadaný max_size , soubor se rozrůstá, dokud se disk nezaplní. Max_size je celočíselná hodnota. Pro hodnoty větší než 2147483647 použijte větší jednotky.

  • NEOMEZENÝ

    Určuje, že se soubor rozrůstá, dokud se disk nezaplní. V SQL Serveru má soubor protokolu zadaný s neomezeným růstem maximální velikost 2 TB a datový soubor má maximální velikost 16 TB.

    Poznámka

    Pokud je tato možnost určená pro kontejner FILESTREAM, není k dispozici žádná maximální velikost. Dokud nebude disk plný, bude se dál zvětšovat.

GROWTH_INCREMENT FILEGROWTH

Určuje automatický růst přírůstku souboru. Nastavení FILEGROWTH souboru nemůže překročit MAXSIZE nastavení. FILEGROWTH nelze zadat, pokud je os_file_name zadána jako cesta UNC. FILEGROWTH se nevztahuje na souborovou skupinu FILESTREAM.

  • growth_increment

    Množství místa přidaného do souboru při každém vyžadování nového místa.

    Hodnotu lze zadat v KBhodnotě , , MBGB, TB, nebo procenta (%). Pokud je zadáno číslo bez přípony KB, MBnebo % přípony, je MBvýchozí hodnota . Při % zadání je velikost přírůstku růstu určená procento velikosti souboru v době, kdy dojde k přírůstku. Zadaná velikost se zaokrouhlí na nejbližší 64 kB a minimální hodnota je 64 kB.

    Hodnota 0 označuje, že automatický růst je vypnutý a není povoleno žádné další místo.

    Pokud FILEGROWTH není zadáno, výchozí hodnoty jsou:

    Verze Výchozí hodnoty
    Začátek SQL Serveru 2016 (13.x) Data 64 MB. Soubory protokolu 64 MB.
    Začátek SYSTÉMU SQL Server 2005 (9.x) Data 1 MB. Soubory protokolu 10%.
    Před SQL Serverem 2005 (9.x) Údaje 10%. Soubory protokolu 10%.

< > skupiny souborů

Řídí vlastnosti skupiny souborů. Pro snímek databáze není možné zadat skupinu souborů.

filegroup_name FILEGROUP

Logický název skupiny souborů.

  • filegroup_name

    filegroup_name musí být v databázi jedinečné a nesmí se jednat o systémové názvy PRIMARY a PRIMARY_LOG. Název může být znak nebo konstanta Unicode nebo běžný identifikátor s oddělovači. Název musí splňovat pravidla pro identifikátory .

  • OBSAHUJE FILESTREAM

    Určuje, že skupina souborů ukládá FILESTREAM binární velké objekty (BLOBs) v systému souborů.

  • VÝCHOZÍ

    Určuje pojmenovanou skupinu souborů jako výchozí skupinu souborů v databázi.

  • OBSAHUJE MEMORY_OPTIMIZED_DATA

    platí pro: SQL Server 2014 (12.x) a novější verze

    Určuje, že skupina souborů ukládá memory_optimized data v systému souborů. Další informace najdete v tématu In-Memory přehled a scénáře použití OLTP. Pro každou databázi je povolená pouze jedna MEMORY_OPTIMIZED_DATA skupina souborů. Ukázky kódu, které vytvářejí skupinu souborů pro ukládání dat optimalizovaných pro paměť, najdete v tématu Vytvoření tabulky Memory-Optimized a nativně zkompilovaná uložená procedura.

database_snapshot_name

Název nového snímku databáze. Názvy snímků databáze musí být jedinečné v rámci instance SQL Serveru a musí odpovídat pravidlům pro identifikátory. database_snapshot_name může mít maximálně 128 znaků.

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

Pro vytvoření snímku databáze určuje seznam souborů ve zdrojové databázi. Aby snímek fungoval, musí být všechny datové soubory zadány jednotlivě. Soubory protokolů ale nejsou povolené pro snímky databáze. Snímky databází nepodporují skupiny souborů FILESTREAM. Pokud je datový soubor FILESTREAM součástí CREATE DATABASE ON klauzule, příkaz selže a vyvolá se chyba.

Popisy NAME hodnot a FILENAME jejich hodnoty najdete v popisech ekvivalentních <filespec> hodnot.

Poznámka

Při vytváření snímku databáze jsou ostatní <filespec> možnosti a klíčové slovo PRIMARY zakázány.

JAKO SNÍMEK SOURCE_DATABASE_NAME

Určuje, že vytvářená databáze je snímek databáze zdrojové databáze určené source_database_name. Snímek a zdrojová databáze musí být ve stejné instanci.

V SQL Serveru 2017 (14.x) a starších verzích nemohla zdrojová databáze snímku databáze obsahovat MEMORY_OPTIMIZED_DATA skupinu souborů. V SQL Serveru 2019 (15.x) byla přidána podpora snímků databáze v paměti.

Další informace naleznete v tématu Snímky databáze.

Poznámky

Hlavní databáze by se měla zálohovat při každém vytvoření, změně nebo vyřazení uživatelské databáze.

Příkaz CREATE DATABASE musí běžet v režimu automatickéhocommitu (výchozí režim správy transakcí) a není povolen v explicitní nebo implicitní transakci.

Pomocí jednoho příkazu CREATE DATABASE můžete vytvořit databázi a soubory, které databázi ukládají. SQL Server implementuje CREATE DATABASE příkaz pomocí následujících kroků:

  1. SQL Server používá kopii databáze modelu k inicializaci databáze a jejích metadat.
  2. Identifikátor GUID zprostředkovatele služeb je přiřazen k databázi.
  3. Databázový stroj pak vyplní zbytek databáze prázdnými stránkami s výjimkou stránek s interními daty, které zaznamenávají způsob použití místa v databázi.

V instanci SQL Serveru je možné zadat maximálně 32 767 databází.

Každá databáze má vlastníka, který může v databázi provádět zvláštní aktivity. Vlastníkem je uživatel, který vytvoří databázi. Vlastníka databáze lze změnit pomocí ALTER AUTHORIZATION.

Některé funkce databáze závisí na funkcích nebo možnostech, které jsou přítomné v systému souborů, a umožňují tak úplnou funkčnost databáze. Mezi příklady funkcí závislých na sadě funkcí systému souborů patří:

  • DBCC CHECKDB
  • Datový proud souborů
  • Online zálohy pomocí VSS a snímků souborů
  • Vytvoření snímku databáze
  • Skupina souborů optimalizovaných pro paměť

Soubory databáze a skupiny souborů

Každá databáze má alespoň dva soubory, primární soubor a soubor protokolu transakcí a alespoň jednu skupinu souborů. Pro každou databázi je možné zadat maximálně 32 767 souborů a 32 767 skupin souborů.

Když vytváříte databázi, nastavte datové soubory co nejvíce na základě maximálního množství dat, která v databázi očekáváte.

Doporučujeme použít síť SAN (Storage Area Network), síť založenou na iSCSI nebo místně připojený disk pro úložiště databázových souborů SQL Serveru, protože tato konfigurace optimalizuje výkon a spolehlivost SQL Serveru.

Snímky databáze

Příkaz CREATE DATABASE můžete použít k vytvoření statického zobrazení jen pro čtení, snímku databáze zdrojové databáze . Snímek databáze je transakční konzistentní se zdrojovou databází, protože existoval v době vytvoření snímku. Zdrojová databáze může mít více snímků.

Poznámka

Při vytváření snímku CREATE DATABASE databáze příkaz nemůže odkazovat na soubory protokolu, offline soubory, obnovení souborů a vyřazené soubory.

Pokud se vytvoření snímku databáze nezdaří, snímek se stane podezřelým a musí být odstraněn. Další informace naleznete v tématu DROP DATABASE.

Každý snímek zůstane trvalý, dokud nebude odstraněn pomocí .DROP DATABASE

Další informace najdete v tématu Snímky databáze (SQL Server) a Vytvoření snímku databáze.

Možnosti databáze

Při vytváření databáze se automaticky nastaví několik možností databáze. Seznam těchto možností naleznete v tématu ALTER DATABASE SET možnosti.

Modelová databáze a vytváření nových databází

Všechny uživatelem definované objekty v databázi modelu se zkopírují do všech nově vytvořených databází. Do model databáze, která se má zahrnout do všech nově vytvořených databází, můžete přidat libovolné objekty, jako jsou tabulky, zobrazení, uložené procedury, datové typy atd.

Pokud je zadán příkaz CREATE DATABASE <database_name> bez dalších parametrů velikosti, primární datový soubor se vytvoří stejnou velikost jako primární soubor v model databázi.

Pokud nezadáte FOR ATTACH, zdědí každá nová databáze nastavení možností databáze z databáze model. Například možnost databáze automatické zmenšení je nastavená na true v model a v jakýchkoli nových databázích, které vytvoříte. Pokud změníte možnosti v databázi model, použijí se tato nová nastavení možností v nových databázích, které vytvoříte. Změna operací v model databázi nemá vliv na existující databáze. Pokud je pro CREATE DATABASE příkaz zadán příkaz FOR ATTACH, nová databáze dědí nastavení možností databáze původní databáze.

Zobrazení informací o databázi

Pomocí zobrazení katalogu, systémových funkcí a systémových uložených procedur můžete vracet informace o databázích, souborech a skupinách souborů. Další informace naleznete v tématu Systémová zobrazení.

Dovolení

Vyžaduje oprávnění CREATE DATABASE, CREATE ANY DATABASEnebo ALTER ANY DATABASE.

Pokud chcete zachovat kontrolu nad používáním disku v instanci SQL Serveru, oprávnění k vytváření databází je obvykle omezeno na několik přihlášení.

Následující příklad poskytuje oprávnění k vytvoření databáze pro uživatele databáze Fay.

USE master;
GO

GRANT CREATE DATABASE TO [Fay];
GO

Oprávnění k datům a souborům protokolu

Na SQL Serveru jsou určitá oprávnění nastavena na data a soubory protokolů každé databáze. Při každém použití následujících operací v databázi jsou nastavena následující oprávnění:

  • Připojený
  • Zálohovány
  • Vytvořil
  • Detašovaný
  • Změněno pro přidání nového souboru
  • Obnovený

Oprávnění brání tomu, aby se soubory omylem manipulovaly, pokud se nacházejí v adresáři s otevřenými oprávněními.

Poznámka

Edice Microsoft SQL Server 2005 Express nenastavuje oprávnění k datům a souborům protokolu.

Příklady

A. Vytvoření databáze bez zadávání souborů

Následující příklad vytvoří databázi mytest a vytvoří odpovídající primární a transakční soubor protokolu. Vzhledem k tomu, že příkaz neobsahuje žádné <filespec> položky, má primární databázový soubor velikost model primárního databázového souboru. Transakční protokol je nastaven na větší z těchto hodnot: 512 kB nebo 25% velikost primárního datového souboru. Vzhledem k tomu MAXSIZE , že není zadaný, můžou se soubory zvětšit, aby vyplnily veškeré dostupné místo na disku. Tento příklad také ukazuje, jak před vytvořením databáze mytest databáze odstranit pojmenovanou mytest, pokud existuje.

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. Vytvoření databáze, která určuje data a soubory transakčních protokolů

Následující příklad vytvoří databázi Sales. Protože se klíčové slovo PRIMARY nepoužívá, první soubor (Sales_dat) se stane primárním souborem. Vzhledem k tomu, že v parametru SIZE souboru Sales_dat není zadána mb ani kB, používá MB a přiděluje se v megabajtech. Soubor Sales_log je přidělen v megabajtech, protože přípona MB je explicitně uvedena v parametru 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 = 5 MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5 MB
);
GO

C. Vytvoření databáze zadáním více dat a souborů transakčních protokolů

Následující příklad vytvoří databázi Archive, která má tři 100-MB datové soubory a dva 100-MB soubory transakčního protokolu. Primární soubor je první soubor v seznamu a explicitně je určen pomocí klíčového slova PRIMARY. Soubory transakčního protokolu se zadají podle klíčových slov LOG ON. Všimněte si přípon používaných pro soubory v možnosti FILENAME: .mdf se používá pro primární datové soubory, .ndf se používá pro sekundární datové soubory a .ldf se používá pro soubory transakčních protokolů. Tento příklad umístí databázi na jednotku D: místo databáze master.

USE master;
GO

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

D. Vytvoření databáze se skupinami souborů

Následující příklad vytvoří databázi Sales, která má následující skupiny souborů:

  • Primární skupina souborů se soubory Spri1_dat a Spri2_dat. Přírůstky FILEGROWTH pro tyto soubory jsou zadány jako 15%.
  • Skupina souborů s názvem SalesGroup1 se soubory SGrp1Fi1 a SGrp1Fi2.
  • Skupina souborů s názvem SalesGroup2 se soubory SGrp2Fi1 a SGrp2Fi2.

Tento příklad umístí data a soubory protokolů na různé disky, aby se zlepšil výkon.

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 = 5 MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5 MB
);
GO

E. Připojení databáze

Následující příklad odpojí databázi Archive vytvořené v příkladu D a pak ji připojí pomocí klauzule FOR ATTACH. Archive byla definována tak, aby měla více dat a souborů protokolu. Vzhledem k tomu, že se umístění souborů od jejich vytvoření nezměnilo, musí být v FOR ATTACH klauzuli zadán pouze primární soubor. Počínaje serverem SQL Server 2005 (9.x) jsou k databázi připojeny všechny fulltextové soubory, které jsou součástí připojované databáze.

USE master;
GO

EXECUTE sp_detach_db Archive;
GO

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

F. Vytvoření snímku databáze

Následující příklad vytvoří snímek databáze sales_snapshot0600. Vzhledem k tomu, že snímek databáze je jen pro čtení, nelze zadat soubor protokolu. V souladu se syntaxí se zadává každý soubor ve zdrojové databázi a skupiny souborů se nezadá.

Zdrojová databáze pro tento příklad je Sales databáze vytvořená v příkladu 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. Vytvoření databáze a zadání názvu kolace a možností

Následující příklad vytvoří databázi MyOptionsTest. Je zadán název kolace a možnosti TRUSTYWORTHY a DB_CHAINING jsou nastaveny na 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. Připojení fulltextového katalogu, který byl přesunut

Následující příklad připojí fulltextový katalog AdvWksFtCat spolu se soubory AdventureWorks2025 dat a protokolů. V tomto příkladu se fulltextový katalog přesune z výchozího umístění do nového umístění c:\myFTCatalogs. Soubory dat a protokolů zůstanou ve svých výchozích umístěních.

USE master;
GO

--Detach the AdventureWorks2022 database
EXECUTE 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

Já. Vytvoření databáze, která určuje skupinu souborů řádků a dvě skupiny souborů FILESTREAM

Následující příklad vytvoří databázi FileStreamDB. Databáze se vytvoří s jednou skupinou souborů řádků a dvěma skupinami souborů FILESTREAM. Každá skupina souborů obsahuje jeden soubor:

  • FileStreamDB_data obsahuje data řádků. Obsahuje jeden soubor, FileStreamDB_data.mdf s výchozí cestou.

  • FileStreamPhotos obsahuje data FILESTREAM. Obsahuje dva datové kontejnery FILESTREAM, FSPhotos, umístěné v C:\MyFSfolder\Photos a FSPhotos2, umístěné v D:\MyFSfolder\Photos. Označí se jako výchozí souborová skupina FILESTREAM.

  • FileStreamResumes obsahuje data FILESTREAM. Obsahuje jeden datový kontejner FILESTREAM, FSResumes, umístěný v C:\MyFSfolder\Resumes.

USE master;
GO

-- Get the SQL Server data path.
DECLARE @data_path AS 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 = 10 MB,
    MAXSIZE = 50 MB,
    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 is 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 = 5 MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5 MB
);');
GO

J. Vytvoření databáze, která má skupinu souborů FILESTREAM s více soubory

Následující příklad vytvoří databázi BlobStore1. Databáze se vytvoří pomocí jedné skupiny souborů řádků a jedné skupiny souborů FILESTREAM, FS. FileSTREAM filegroup obsahuje dva soubory, FS1 a FS2. Databáze se pak změní přidáním třetího souboru FS3do skupiny souborů FILESTREAM.

USE master;
GO

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

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

* SQL databáze *

spravované instance SQL

Databáze SQL

Přehled

V Azure SQL Database se tento příkaz dá použít se serverem Azure SQL k vytvoření izolované databáze nebo databáze v elastickém fondu. Pomocí tohoto příkazu zadáte název databáze, kolaci, maximální velikost, edici, cíl služby a v případě potřeby elastický fond pro novou databázi. Dá se také použít k vytvoření databáze v elastickém fondu. Kromě toho ji můžete použít k vytvoření kopie databáze na jiném serveru služby SQL Database.

Syntaxe

Vytvoření databáze

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

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>) } } )
}

Kopírování databáze

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' | 'GEOZONE' } ) ]
[ ; ]

Argumenty

database_name

Název nové databáze. Tento název musí být na SQL Serveru jedinečný a musí být v souladu s pravidly SQL Serveru pro identifikátory. Další informace naleznete v tématu Identifikátory databáze.

collation_name

Určuje výchozí kolaci pro data databáze. Zadejte CATALOG_COLLATION pro systémová metadata, například identifikátory objektů.

Název kolace může být buď název kolace Systému Windows, nebo název kolace SQL. Pokud není zadáno, je databáze přiřazena výchozí kolace, což je SQL_Latin1_General_CP1_CI_AS.

Další informace o názvech kolace Windows a SQL najdete v tématu COLLATE.

CATALOG_COLLATION

Určuje výchozí kolaci pro katalog metadat. Argument CATALOG_COLLATION je k dispozici pouze během vytváření databáze a po vytvoření není možné ho změnit.

Ve výchozím nastavení se katalog metadat pro názvy systémových objektů kompletuje do SQL_Latin1_General_CP1_CI_AS kolace. Toto je výchozí nastavení služby Azure SQL Database, pokud CATALOG_COLLATION není zadané.

DATABASE_DEFAULT určuje, že katalog metadat, který se používá pro systémová zobrazení a systémové tabulky, se kompletuje tak, aby odpovídal kolaci databáze. Pokud chcete, aby identifikátory objektů v systémových metadatech sledovaly stejnou kolaci jako data, měli byste vytvořit databázi WITH CATALOG_COLLATION = DATABASE_DEFAULT.

  • Možná budete chtít různé kolace pro identifikátory dat a objektů. Následující příklad vytvoří databázi s kolací citlivou na malá a velká písmena pro data řádků, ale používá výchozí SQL_Latin1_General_CP1_CI_AS kolaci nerozlišující malá a velká písmena pro identifikátory objektů.

    CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS;
    
  • Pokud chcete, aby data i systémová metadata používaly stejnou kolaci, zadejte WITH CATALOG_COLLATION = DATABASE_DEFAULT. Následující příklad vytvoří databázi s kolací citlivou na malá a velká písmena, která se používá pro identifikátory objektů.

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

BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | 'ZÓNA' | 'GEO' | 'GEOZONE' }

Určuje, jak se replikují zálohy dlouhodobého uchovávání a obnovení k určitému bodu v čase pro databázi. Geografické obnovení nebo schopnost zotavení z regionálního výpadku je k dispozici pouze v případech, kdy je databáze vytvořená s redundancí úložiště zálohování GEO. Pokud nejsou explicitně zadány, databáze vytvořené pomocí T-SQL používají geograficky redundantní úložiště zálohování.

Používá GEOZONE se pro geograficky zónově redundantní úložiště. Geozónově redundantní úložiště (GZRS) nabízí nejvyšší úroveň ochrany proti zónovým výpadkům i regionálním výpadkům pro jakoukoli pracovní zátěž.

Pokud chcete vynutit rezidenci dat při vytváření databáze pomocí T-SQL, použijte LOCAL nebo ZONE jako vstup do parametru BACKUP_STORAGE_REDUNDANCY .

Když vytvoříte databázi jako kopii jiné databáze pomocí AS COPY OFprogramu , je podporováno zadávání voleb, které by mělo být zabaleno do závorek. Například WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

LEDGER = { ON | VYPNUTO }

Při nastavení na ONvytvoří databázi registru, ve které je chráněna integrita všech uživatelských dat. V databázi registru lze vytvořit pouze tabulky registru. Výchozí hodnota je OFF. Hodnotu LEDGER možnosti nelze po vytvoření databáze změnit. Další informace naleznete v tématu Konfigurace databáze registru.

MAXIMÁLNÍ VELIKOST

Určuje maximální velikost databáze. MAXSIZE musí být platné pro zadanou EDITION (úroveň služby).

Následují podporované MAXSIZE hodnoty a výchozí hodnoty (D) pro úrovně služby.

Poznámka

Argument MAXSIZE se nevztahuje na izolované databáze na úrovni služby Hyperscale. Databáze s jednou vrstvou Hyperscale rostou podle potřeby až o 128 TB. Služba SQL Database přidává úložiště automaticky – nemusíte nastavovat maximální velikost.

modelu DTU pro jednoúčelové databáze a databáze ve fondu na serveru SQL Database

MAXSIZE Basic S0-S2 S3-S12 P1-P6 P11-P15 1
100 MB Ano Ano Ano Ano Ano
500 MB Ano Ano Ano Ano Ano
1 GB Ano Ano Ano Ano Ano
2 GB Ano (D) Ano Ano Ano Ano
5 GB Není k dispozici Ano Ano Ano Ano
10 GB Není k dispozici Ano Ano Ano Ano
20 GB Není k dispozici Ano Ano Ano Ano
30 GB Není k dispozici Ano Ano Ano Ano
40 GB Není k dispozici Ano Ano Ano Ano
50 GB Není k dispozici Ano Ano Ano Ano
100 GB Není k dispozici Ano Ano Ano Ano
150 GB Není k dispozici Ano Ano Ano Ano
200 GB Není k dispozici Ano Ano Ano Ano
250 GB Není k dispozici Ano (D) Ano (D) Ano Ano
300 GB Není k dispozici Není k dispozici Ano Ano Ano
400 GB Není k dispozici Není k dispozici Ano Ano Ano
500 GB Není k dispozici Není k dispozici Ano Ano (D) Ano
750 GB Není k dispozici Není k dispozici Ano Ano Ano
1 024 GB Není k dispozici Není k dispozici Ano Ano Ano (D)
Od 1 024 GB do 4 096 GB v přírůstcích po 256 GB Není k dispozici Není k dispozici Není k dispozici Není k dispozici Ano

1 P11 a P15 umožňuje MAXSIZE až 4 TB s výchozí velikostí 1 024 GB. P11 a P15 mohou bez dalších poplatků využívat až 4 TB zahrnutého úložiště. Na úrovni MAXSIZE Premium je v současné době k dispozici větší než 1 TB v následujících oblastech: USA – východ 2, USA – západ, US Gov Virginia, Západní Evropa, Německo – střed, Jihovýchodní Asie, Japonsko – východ, Austrálie – východ, Kanada – střed a Kanada – východ. Další informace o omezeních prostředků pro model DTU najdete v tématu Omezení prostředků pro izolované databáze využívající nákupní model DTU – Azure SQL Database.

Pokud MAXSIZE je zadán model DTU, musí být platná hodnota zobrazená v předchozí tabulce pro zadanou úroveň služby.

Omezení, jako je maximální velikost dat a velikost tempdb v nákupním modelu virtuálních jader, najdete v článcích o omezeních prostředků pro izolované databáze nebo limity prostředků pro elastické fondy.

Pokud se při použití modelu virtuálních jader nenastaví žádná MAXSIZE hodnota, výchozí hodnota je 32 GB. Další informace o omezeních prostředků pro model virtuálních jader najdete v tématu omezení prostředků virtuálních jader.

VYDÁNÍ

Určuje úroveň služby databáze.

Izolované databáze a databáze ve fondu Dostupné hodnoty jsou: Basic, Standard, Premium, GeneralPurpose, BusinessCritical a Hyperscale.

Následující pravidla platí pro MAXSIZE argumenty a EDITION argumenty:

  • Pokud EDITION je zadán, ale MAXSIZE není zadán, použije se výchozí hodnota pro edici. Pokud EDITION je například nastavená hodnota Standard a MAXSIZE není zadána, maximální velikost se automaticky nastaví na 250 MB.

  • MAXSIZE EDITION Pokud ani není zadána, je nastavena EDITION na GeneralPurpose a MAXSIZE je nastavena na 32 GB.

SERVICE_OBJECTIVE

Určuje velikost výpočetních prostředků a cíl služby.

  • Nákupní model DTU: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15

  • Pro nejnovější nákupní model virtuálních jader zvolte úroveň a zadejte počet virtuálních jader z přednastaveného seznamu hodnot, kde je počet virtuálních jader n. Informace o omezeních prostředků pro izolované databáze nebo limity prostředků pro elastické fondy.

    • Například:
      • GP_Gen5_8 pro obecné účely, zřízené výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader.
      • GP_S_Gen5_8 pro obecné účely, bezserverové výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader.
      • HS_Gen5_8 pro Hyperscale, zřízené výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader.
      • HS_S_Gen5_8 pro Hyperscale, bezserverové výpočetní prostředky, řadu Standard (Gen5), 8 virtuálních jader.

Popisy cílů služby a další informace o kombinacích velikostí, edicí a cílů služby najdete v tématu úrovně služby Azure SQL Database. Pokud zadaný parametr SERVICE_OBJECTIVE nepodporuje EDITION, zobrazí se chyba. Pokud chcete změnit SERVICE_OBJECTIVE hodnotu z jedné vrstvy na jinou (například z S1 na P1), musíte také změnit EDITION hodnotu. Podpora cílů služby PRS byla odebrána.

ELASTIC_POOL (název = <elastic_pool_name>)

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu. Nevztahuje se na databáze na úrovni služby Hyperscale.

Pokud chcete vytvořit novou databázi ve fondu elastické databáze, nastavte SERVICE_OBJECTIVE databázi na ELASTIC_POOL název fondu a zadejte název fondu. Další informace najdete v tématu Elastické fondy, které vám pomůžou spravovat a škálovat více databází ve službě Azure SQL Database.

JAKO KOPIE [ source_server_name. ] source_database_name

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu.

Pomocí AS COPY OF zkopírujte databázi na stejný nebo jiný server SLUŽBY SQL Database.

Při vytváření databáze jako kopie jiné databáze s AS COPY OFse podporuje zadávání možností a měla by být zabalena do závorek. Například WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

  • source_server_name

    Název serveru SLUŽBY SQL Database, kde se nachází zdrojová databáze. Tento parametr je volitelný, pokud se zdrojová databáze a cílová databáze nacházejí na stejném serveru služby SQL Database.

    Poznámka

    Argument AS COPY OF nepodporuje plně kvalifikované jedinečné názvy domén. Jinými slovy, pokud je plně kvalifikovaný název domény vašeho serveru serverName.database.windows.net, použijte pouze serverName během kopírování databáze.

  • source_database_name

    Název databáze, která se má zkopírovat.

Poznámky

Databáze ve službě Azure SQL Database mají několik výchozích nastavení, která jsou nastavená při vytváření databáze. Další informace o těchto výchozích nastaveních naleznete v seznamu hodnot v DATABASEPROPERTYEX.

MAXSIZE umožňuje omezit velikost databáze. Pokud velikost databáze dosáhne MAXSIZE, zobrazí se kód chyby 40544. V takovém případě nemůžete vkládat ani aktualizovat data ani vytvářet nové objekty (například tabulky, uložené procedury, zobrazení a funkce). Stále ale můžete číst a odstraňovat data, zkrátit tabulky, odstraňovat tabulky a indexy a znovu sestavovat indexy. Potom můžete aktualizovat MAXSIZE na hodnotu větší než aktuální velikost databáze nebo odstranit některá data, aby se uvolnil prostor úložiště. Může dojít až k 15minutové prodlevě, než budete moci vložit nová data.

Pokud chcete později změnit velikost, edici nebo cíle služby, použijteALTER DATABASE (Azure SQL Database).

Kopie databáze

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu.

Kopírování databáze pomocí příkazu CREATE DATABASE je asynchronní operace. Připojení k serveru služby SQL Database proto není potřeba po celou dobu trvání procesu kopírování. Příkaz CREATE DATABASE vrátí uživateli ovládací prvek po vytvoření položky v sys.databases, ale před dokončením operace kopírování databáze. Jinými slovy, příkaz CREATE DATABASE se úspěšně vrátí, když probíhá kopírování databáze.

  • Monitorování procesu kopírování na serveru SQL Database: Zadejte dotaz na percentage_complete sloupce nebo replication_state_desc ve dm_database_copies nebo na state sloupec v sys.databases zobrazení. Zobrazení sys.dm_operation_status lze použít a také vrací stav databázových operací včetně kopírování databáze.

Po úspěšném dokončení procesu kopírování je cílová databáze transakčně konzistentní se zdrojovou databází.

Pro použití argumentu AS COPY OF platí následující syntaxe a sémantická pravidla:

  • Název zdrojového serveru a název serveru pro cíl kopírování může být stejný nebo jiný. Pokud jsou stejné, tento parametr je volitelný a kontext serveru aktuální relace se používá ve výchozím nastavení.
  • Názvy zdrojových a cílových databází musí být zadány, jedinečné a musí být v souladu s pravidly SYSTÉMU SQL Server pro identifikátory. Další informace naleznete v tématu Identifikátory databáze.
  • Příkaz CREATE DATABASE musí být proveden v kontextu master databáze serveru SLUŽBY SQL Database, kde bude vytvořena nová databáze.
  • Po dokončení kopírování musí být cílová databáze spravovaná jako nezávislá databáze. Příkazy ALTER DATABASE a DROP DATABASE můžete spouštět v nové databázi nezávisle na zdrojové databázi. Novou databázi můžete také zkopírovat do jiné nové databáze.
  • Zdrojová databáze může být i nadále přístupná, i když probíhá kopírování databáze.

Další informace najdete v tématu Kopírování transakční konzistentní kopie databáze ve službě Azure SQL Database.

Důležitý

Ve výchozím nastavení se kopie databáze vytvoří se stejnou redundancí úložiště zálohování jako zdrojová databáze.

Dovolení

Pokud chcete vytvořit databázi, musí být přihlášení jedním z následujících objektů zabezpečení:

  • Přihlášení objektu zabezpečení na úrovni serveru
  • Správce Microsoft Entra pro logický server v Azure
  • Přihlášení, které je členem role databáze dbmanager

Další požadavky na použití syntaxe CREATE DATABASE ... AS COPY OF: přihlášení, které spouští příkaz na místním serveru, musí být alespoň db_owner na zdrojovém serveru. Pokud je přihlášení založené na ověřování SQL Serveru, musí mít přihlašovací jméno, které spouští příkaz na místním serveru, odpovídající přihlášení na zdrojovém serveru služby SQL Database se stejným názvem a heslem.

Příklady

Základní příklad

Základní příklad pro vytvoření databáze.

CREATE DATABASE TestDB1;

Základní příklad s edicí

Základní příklad pro vytvoření databáze pro obecné účely.

CREATE DATABASE TestDB2
    (EDITION = 'GeneralPurpose');

Příklad s dalšími možnostmi

Příklad použití více možností.

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

Vytvoření kopie databáze

Příklad vytvoření kopie databáze.

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu.

CREATE DATABASE escuela
    AS COPY OF school;

Vytvoření databáze v elastickém fondu

Vytvoří novou databázi ve fondu s názvem S3M100:

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu.

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

Vytvoření kopie databáze na jiném logickém serveru

Následující příklad vytvoří kopii db_original databáze s názvem db_copy v cíli služby Pro obecné účely pro jednu databázi. To platí bez ohledu na to, jestli je db_original v elastickém fondu, nebo ve velikosti výpočetních prostředků (cíl služby) pro jednu databázi.

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu.

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

Následující příklad vytvoří kopii db_original databáze s názvem db_copy v elastickém fondu s názvem ep1. To platí bez ohledu na to, jestli je db_original v elastickém fondu, nebo ve velikosti výpočetních prostředků (cíl služby) pro jednu databázi. Pokud je db_original v elastickém fondu s jiným názvem, db_copy se stále vytváří v ep1.

platí pouze pro: pouze jednoúčelové databáze a databáze ve fondu.

CREATE DATABASE db_copy
    AS COPY OF <database>.db_original
    (SERVICE_OBJECTIVE = ELASTIC_POOL (NAME = ep1));

Vytvoření databáze se zadanou hodnotou kolace katalogu

Následující příklad nastaví kolaci katalogu na DATABASE_DEFAULT během vytváření databáze, která nastaví kolaci katalogu tak, aby byla stejná jako kolace databáze.

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

Vytvoření databáze s využitím zónové redundance pro zálohy

Následující příklad nastaví zónovou redundanci pro zálohy databáze. Zálohy obnovení k určitému bodu v čase i dlouhodobé zálohy uchovávání (pokud jsou nakonfigurované) používají stejnou redundanci úložiště zálohování.

CREATE DATABASE test_zone_redundancy
  WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';

Vytvoření databáze registru

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

Vytvoření jako kopie databáze při změně možností

Následující příklad nastaví různé možnosti pro novou kopii databáze, včetně jiné úrovně služby a nastavení redundance úložiště zálohování. Ve výchozím nastavení se kopie databáze vytvoří se stejným nastavením jako zdrojová databáze.

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

SQL Database

* SQL spravovaná instance *

Azure SQL Managed Instance

Přehled

Ve službě Azure SQL Managed Instance se tento příkaz používá k vytvoření databáze. Při vytváření databáze ve spravované instanci zadáte název a kolaci databáze.

Syntaxe

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

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

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

Důležitý

Chcete-li přidat soubory nebo nastavit omezení databáze ve spravované instanci, použijte příkaz ALTER DATABASE.

U spravovaných instancí SQL se počáteční hodnota MAXSIZE implicitně nastaví na aktuální velikost disku a při rozšíření velikosti disku z webu Azure Portal se automaticky nezmění. Po rozšíření disku byste také měli rozšířit MAXSIZEpříkazEM ALTER DATABASE , aby nedocházelo k úplným chybám souboru databáze.

Argumenty

database_name

Název nové databáze. Tento název musí být na SQL Serveru jedinečný a musí být v souladu s pravidly SQL Serveru pro identifikátory. Další informace naleznete v tématu Identifikátory databáze.

collation_name

Určuje výchozí kolaci databáze. Název kolace může být buď název kolace Systému Windows, nebo název kolace SQL. Pokud není zadáno, je databáze přiřazena výchozí kolace, což je SQL_Latin1_General_CP1_CI_AS.

Další informace o názvech kolace Windows a SQL najdete v tématu COLLATE.

LEDGER = { ON | VYPNUTO }

Při nastavení na ONvytvoří databázi registru, ve které je chráněna integrita všech uživatelských dat. V databázi registru lze vytvořit pouze tabulky registru. Výchozí hodnota je OFF. Hodnotu LEDGER možnosti nelze po vytvoření databáze změnit. Další informace naleznete v tématu Konfigurace databáze registru.

Poznámky

Databáze ve službě Azure SQL Database mají několik výchozích nastavení, která jsou nastavená při vytváření databáze. Další informace o těchto výchozích nastaveních naleznete v seznamu hodnot v DATABASEPROPERTYEX.

Důležitý

Příkaz CREATE DATABASE musí být jediným příkazem v Transact-SQL dávce.

Toto jsou omezení CREATE DATABASE:

  • Soubory a skupiny souborů nelze definovat.

  • WITH možnosti nejsou podporovány, s výjimkou WITH LEDGER.

    Spropitné

    Jako alternativní řešení použijte ALTER DATABASE. po CREATE DATABASE nastavit možnosti databáze a přidat soubory.

Dovolení

Chcete-li vytvořit databázi, musí být přihlášení jedním z následujících typů zaregistrovaných objektů zabezpečení:

  • Přihlášení objektu zabezpečení na úrovni serveru
  • Správce Microsoft Entra pro logický server v Azure
  • Přihlášení, které je členem databázové role dbcreator

Příklady

Základní příklad

Základní příklad pro vytvoření databáze.

CREATE DATABASE TestDB1;

Vytvoření databáze registru

CREATE DATABASE MyLedgerDB
    WITH LEDGER = ON;

SQL Database

spravované instance SQL

* Azure Synapse
Analýza *

Azure Synapse Analytics

Přehled

V Azure Synapse se tento příkaz dá použít se serverem Azure SQL Database k vytvoření vyhrazeného fondu SQL. Pomocí tohoto příkazu zadáte název databáze, kolaci, maximální velikost, edici a cíl služby.

  • CREATE DATABASE podporuje samostatné vyhrazené fondy SQL (dříve SQL DW) s využitím úrovní služeb Gen2.
  • CREATE DATABASE nepodporuje vyhrazené fondy SQL v pracovním prostoru Azure Synapse Analytics. Místo toho použítwebu Azure Portal.
  • CREATE DATABASE podporuje se pro bezserverové fondy SQL ve službě Azure Synapse Analytics.

Syntaxe

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

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'
    }
)
[ ; ]

Argumenty

database_name

Název nové databáze. Tento název musí být jedinečný na sql serveru, který může hostovat databáze v databázích Azure SQL Database i Azure Synapse Analytics a dodržovat pravidla SQL Serveru pro identifikátory. Další informace naleznete v tématu Identifikátory databáze.

collation_name

Určuje výchozí kolaci databáze. Název kolace může být buď název kolace Systému Windows, nebo název kolace SQL. Pokud není zadáno, je databáze přiřazena výchozí kolace, což je SQL_Latin1_General_CP1_CI_AS.

Další informace o názvech kolace Windows a SQL najdete v tématu COLLATE.

MAXSIZE

Výchozí hodnota je 245 760 GB (240 TB).

platí pro: optimalizované pro Compute Gen1

Maximální povolená velikost databáze. Databáze se nemůže zvětšit nad rámec MAXSIZE.

platí pro: optimalizované pro Compute Gen2

Maximální povolená velikost dat úložiště řádků v databázi. Data uložená v tabulkách rowstore, rozdílovém úložišti indexu columnstore nebo neclusterovaného indexu v clusterovém indexu columnstore nemůžou růst nad rámec MAXSIZE. Data komprimovaná do formátu columnstore nemají limit velikosti a nejsou omezena MAXSIZE.

edice

Určuje úroveň služby databáze. Pro Azure Synapse Analytics použijte datawarehouse.

SERVICE_OBJECTIVE

Určuje velikost výpočetních prostředků (cíl služby). Úrovně služeb pro Gen2 se měří v jednotkách výpočetního datového skladu (cDWU), například DW2000c. Úrovně služeb Gen1 se měří v jednotce DWU, například DW2000. Další informace o cílech služby pro Azure Synapse najdete v tématujednotky datového skladu (DWU). Cíle služby Gen1 (už nejsou uvedené) se už nepodporují. Může se zobrazit chyba: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.

Poznámky

K zobrazení vlastností databáze použijte DATABASEPROPERTYEX.

Pomocí ALTER DATABASE – Azure Synapse Analytics změnit maximální velikost nebo hodnoty cíle služby později.

Služba Azure Synapse je nastavená COMPATIBILITY_LEVEL 130 a nejde ji změnit. Další informace naleznete v tématu ALTER DATABASE úroveň kompatibility.

Dovolení

Požadovaná oprávnění:

  • Přihlášení objektu zabezpečení na úrovni serveru vytvořené procesem zřizování nebo
  • Člen databázové role dbmanager .

Zpracování chyb

Pokud velikost databáze dosáhne MAXSIZE, SQL Server vyvolá kód chyby 40544. Když k tomu dojde, nemůžete vkládat a aktualizovat data ani vytvářet nové objekty (například tabulky, uložené procedury, zobrazení a funkce). Stále můžete číst a odstraňovat data, zkracovat tabulky, odstraňovat tabulky a indexy a znovu sestavovat indexy. Potom můžete aktualizovat MAXSIZE na hodnotu větší než aktuální velikost databáze nebo odstranit některá data, aby se uvolnil prostor úložiště. Než budete moct vložit nová data, může to být až patnáctiminutové zpoždění.

Omezení

Abyste mohli vytvořit novou databázi, musíte být připojeni k databázi master.

Příkaz CREATE DATABASE musí být jediným příkazem v Transact-SQL dávce.

Po vytvoření databáze nemůžete změnit kolaci databáze.

Příklady: Azure Synapse Analytics

A. Základní příklad

Základní příklad vytvoření samostatného vyhrazeného fondu SQL (dříve SQL DW). Tím se vytvoří databáze s nejmenší maximální velikostí (10 240 GB), výchozí kolací (SQL_Latin1_General_CP1_CI_AS) a nejmenším cílem služby Gen2 (DW100c).

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

B. Vytvoření databáze datového skladu se všemi možnostmi

Příklad vytvoření samostatného vyhrazeného fondu SQL s 10 terabajty (dříve SQL DW).

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

C. Základní příklad v bezserverovém fondu SQL služby Synapse Analytics

Tím se vytvoří databáze v bezserverovém fondu a určí se kolace (Latin1_General_100_CI_AS_KS_WS).

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS;

SQL Database

spravované instance SQL

* Analytická platforma
Systém (PDW) *

Systém analytických platforem

Přehled

V nástroji Analytics Platform System se tento příkaz používá k vytvoření nové databáze na zařízení Analytics Platform System. Pomocí tohoto příkazu můžete vytvořit všechny soubory přidružené k databázi zařízení a nastavit maximální velikost a možnosti automatického růstu pro tabulky databáze a transakční protokol.

Syntaxe

Další informace o konvencích syntaxe najdete v tématu Transact-SQL konvence syntaxe.

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

Argumenty

database_name

Název nové databáze. Další informace o povolených názvech databází naleznete v části Pravidla pojmenování objektů a Rezervované názvy databází v dokumentaci k produktu Analytics Platform System (PDW).

AUTOGROW = { ON | VYPNUTO }

Určuje, zda se parametry replicated_size, distributed_size a log_size automaticky zvětší podle potřeby nad určenou velikost. Výchozí hodnota je OFF.

Pokud AUTOGROW je ONto replicated_size, distributed_size a log_size růst podle potřeby s každým vložením, aktualizací nebo jinou akcí, která vyžaduje více úložiště, než je již přiděleno.

Pokud AUTOGROW ano OFF, velikosti se automaticky nezvětšují. Systém PDW (Analytics Platform System) vrací chybu při pokusu o akci, která vyžaduje replicated_size, distributed_size nebo log_size , aby se zvětšila nad rámec zadané hodnoty.

AUTOGROW je buď ON pro všechny velikosti, nebo OFF pro všechny velikosti. Například není možné nastavit AUTOGROW ON pro log_size, ale pro replicated_size ho nenastavit.

replicated_size [ GB ]

Kladné číslo. Nastaví velikost (celé číslo nebo desetinné gigabajty) pro celkový prostor přidělený replikovaným tabulkám a odpovídajících datových na každém výpočetním uzlu. Minimální a maximální požadavky na replicated_size najdete v části Minimální a maximální hodnoty v dokumentaci k produktu Analytics Platform System (PDW).

Pokud AUTOGROW ano ON, replikované tabulky se můžou zvětšit nad rámec tohoto limitu.

Pokud AUTOGROW ano OFF, vrátí se chyba, pokud se uživatel pokusí vytvořit novou replikovanou tabulku, vložit data do existující replikované tabulky nebo aktualizovat existující replikovanou tabulku způsobem, který by zvětšil velikost nad rámec replicated_size.

distributed_size [ GB ]

Kladné číslo. Velikost v celočíselném nebo desítkovém gigabajtech pro celkový prostor přidělený distribuovaným tabulkám (a odpovídajícím datům) napříč zařízením. Minimální a maximální požadavky na distributed_size najdete v části Minimální a maximální hodnoty v dokumentaci k produktu Analytics Platform System (PDW).

Pokud AUTOGROW ano ON, distribuované tabulky se můžou zvětšit nad rámec tohoto limitu.

Pokud AUTOGROW ano OFF, vrátí se chyba, pokud se uživatel pokusí vytvořit novou distribuovanou tabulku, vloží data do existující distribuované tabulky nebo aktualizuje existující distribuovanou tabulku způsobem, který by zvětšil velikost nad rámec distributed_size.

log_size [ GB ]

Kladné číslo. Velikost (celé číslo nebo desetinné gigabajty) pro transakční protokol v zařízení.

Minimální a maximální požadavky na log_size naleznete v části Minimální a maximální hodnoty v dokumentaci k produktu Analytics Platform System (PDW).

Pokud AUTOGROW ano ON, může se soubor protokolu zvětšit nad rámec tohoto limitu. Pomocí příkazu DBCC SHRINKLOG – Analytics Platform System (PDW) zmenšete velikost souborů protokolu na původní velikost.

Pokud AUTOGROW ano OFF, uživateli se vrátí chyba pro libovolnou akci, která by zvětšila velikost protokolu na jednotlivém výpočetním uzlu nad rámec log_size.

Dovolení

Vyžaduje oprávnění CREATE ANY DATABASE v databázi master nebo členství v roli správce systému pevné role serveru.

Následující příklad poskytuje oprávnění k vytvoření databáze pro uživatele databáze Fay.

USE master;
GO

GRANT CREATE ANY DATABASE TO [Fay];
GO

Poznámky

Databáze se vytvářejí s úrovní kompatibility databáze 120, což je úroveň kompatibility pro SQL Server 2014 (12.x). Tím zajistíte, že databáze může používat všechny funkce SQL Serveru 2014 (12.x), které pdW používá.

Omezení

Příkaz CREATE DATABASE není povolen v explicitní transakci. Další informace najdete v tématu Transact-SQL příkazy.

Informace o minimálních a maximálních omezeních pro databáze naleznete v části Minimální a maximální hodnoty v dokumentaci k produktu Analytics Platform System (PDW).

V okamžiku vytvoření databáze musí být na každém výpočetním uzlu dostatek volného místa , aby bylo možné přidělit celkový součet následujících velikostí:

  • Databáze SQL Serveru s tabulkami velikosti replicated_table_size.
  • Databáze SQL Serveru s tabulkami (distributed_table_size / počet výpočetních uzlů).
  • SQL Server zaznamená velikost (log_size / počet výpočetních uzlů).

Zamykání

Vezme sdílený zámek objektu DATABASE .

Metadatové informace

Po úspěšném provedení této operace se položka pro tuto databázi zobrazí v zobrazeních metadat sys.databases a sys.objects .

Příklady: Systém analytických platforem (PDW)

A. Příklady vytvoření základní databáze

Následující příklad vytvoří databázi mytest s přidělením úložiště 100 GB na výpočetní uzel pro replikované tabulky, 500 GB na zařízení pro distribuované tabulky a 100 GB na zařízení pro transakční protokol. V tomto příkladu je ve výchozím nastavení vypnutý. AUTOGROW

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

Následující příklad vytvoří databázi mytest se stejnými parametry, kromě toho, že AUTOGROW je zapnutá. To umožňuje databázi zvětšit mimo zadané parametry velikosti.

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

B. Vytvoření databáze s částečnými velikostmi gigabajtů

Následující příklad vytvoří databázi mytests vypnutým přidělením AUTOGROW úložiště 1,5 GB na výpočetní uzel pro replikované tabulky, 5,25 GB na zařízení pro distribuované tabulky a 10 GB na zařízení pro transakční protokol.

CREATE DATABASE mytest
  WITH
    (REPLICATED_SIZE = 1.5 GB,
    DISTRIBUTED_SIZE = 5.25 GB,
    LOG_SIZE = 10 GB);
  • ALTER DATABASE (Analytics Platform System)
  • DROP DATABASE (Transact-SQL)