Sdílet prostřednictvím


CREATE DATABASE

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.

Syntax

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

Toto je 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 zadán logický název. Pokud není zadán 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í zadán 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ší

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. Funkce ON se vyžaduje, pokud následuje čárkami oddělený seznam <souborůpec> položek, které definují datové soubory pro primární skupinu souborů. Seznam souborů v primární skupině souborů může následovat volitelný seznam oddělený čárkami <skupiny souborů> položek, které definují skupiny souborů uživatele a jejich soubory.

PRIMÁRNÍ

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

Pokud není zadán PRIMÁRNÍ, první soubor uvedený v příkazu CREATE DATABASE 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. ZA LOG ON následuje čárkami oddělený seznam <souborůpec> položek, které definují soubory protokolu. Pokud není zadaný protokol, 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í naleznete v tématu Zobrazení nebo změna výchozích umístění pro data a soubory protokolu v nástroji SSMS.

Pro snímek databáze nelze zadat protokol LOG ON.

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. Pro snímek databáze nelze zadat název kolace.

Název kolace nelze zadat pomocí klauzulí FOR ATTACH nebo FOR ATTACH_REBUILD_LOG. Informace o tom, jak změnit kolaci připojené databáze, naleznete na tomto webu společnosti Microsoft.

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

Poznámka

Obsažené databáze se kompletují jinak než databáze, které nejsou obsažené. Další informace naleznete v tématu Contained Database Collations.

Možnost <WITH>

<filestream_option>

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }

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

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ší

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řípadě, že je funkce CONTAINMENT nastavena na ČÁSTEČNOU. Pokud je funkce CONTAINMENT nastavená na HODNOTU NONE, dojde k chybám.

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

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

Úplný popis této možnosti najdete v tématu Konfigurace výchozího fulltextového jazyka Server Configuration Option.

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

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

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

NESTED_TRIGGERS = { OFF | ON }

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

Úplný popis této možnosti najdete v tématu Konfigurace vnořených aktivačních událostí.

TRANSFORM_NOISE_WORDS = { OFF | ON }

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

Úplný popis této možnosti najdete v tématu transformace slov konfigurace serveru.

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 tématu Konfigurace dvouciferného roku konfigurace serveru.

DB_CHAINING { OFF | ON }

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

Pokud je tato možnost vypnutá, nemůže se databáze účastnit řetězení vlastnictví mezi databázemi. Výchozí hodnota je VYPNUTÁ.

Důležitý

Instance SQL Serveru toto nastavení rozpozná, pokud je možnost řetězení vlastnictví mezi databázemi 0 (VYPNUTO). Pokud je řetězení vlastnictví mezi databázemi 1 (ZAPNUTO), 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. U těchto systémových databází nelze nastavit možnost DB_CHAINING: master, model, tempdb.

DŮVĚRYHODNÉ { VYPNUTO | ON }

Při zadání funkce ON 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 je tato možnost vypnutá, databázové moduly v kontextu zosobnění nemají přístup k prostředkům mimo databázi. Výchozí hodnota je VYPNUTÁ.

FUNKCE TRUSTWORTHY je při připojení databáze nastavena na hodnotu VYPNUTO.

Ve výchozím nastavení mají všechny systémové databáze s výjimkou databáze msdb nastavenou hodnotu TRUSTWORTHY vypnuto. Hodnotu nelze změnit pro databáze model a tempdb. Pro databázi master doporučujeme nikdy nastavit možnost TRUSTWORTHY na HODNOTU ON.

PERSISTENT_LOG_BUFFER=ZAPNUTO ( DIRECTORY_NAME='' )

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

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 možnosti LEDGER 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 <souborpec> položka, která určuje primární soubor. Jediné další <souborypec> položky jsou ty pro všechny soubory, které mají jinou cestu, než kdy byla databáze vytvořena nebo naposledy připojena. Pro tyto soubory musí být zadána položka <>.

FUNKCE ATTACH vyžaduje následující:

  • 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 pro databázi jen pro čtení nelze protokol znovu vytvořit, protože primární soubor nelze 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 budou 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 najdete v části Příklady.

Připojení databáze, která obsahuje možnost FILESTREAM názvu adresáře, do instance SYSTÉMU SQL Server vyzve SQL Server k ověření, zda je název Database_Directory jedinečný. Pokud ne, operace ATTACH 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.

Pro připojení nelze zadat snímek databáze.

Funkce FOR ATTACH může zadat možnost RESTRICTED_USER. RESTRICTED_USER umožňuje připojení k databázi jenom členům db_owner pevné databázové role a role dbcreatoru a správce systému, 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 <service_broker_option> WITH v klauzuli FOR ATTACH:

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

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 nelze připojit pomocí formátu vardecimal storage ke starší verzi SQL Serveru. Další informace o formátu úložiště vardecimal naleznete v tématu Komprese dat.

Při prvním připojení nebo obnovení databáze k nové instanci SQL Serveru se kopie hlavního klíče databáze (zašifrovaná hlavním klíčem služby) ještě na serveru neuloží. 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řipojování databází 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

Možnosti TRUSTWORTHY a DB_CHAINING nemají při připojování databáze žádný vliv.

FOR 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 <souborpec> 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í naleznete v tématu Zobrazení nebo změna výchozích umístění pro data a soubory protokolu v nástroji SSMS.

Poznámka

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

PRO 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ů. Po dokončení operace doporučujeme provést úplnou zálohu databáze. Další informace naleznete v tématu ZÁLOHOVÁNÍ.

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

Pro ATTACH_REBUILD_LOG nelze zadat snímek databáze.

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

<souborůpec>

Řídí vlastnosti souboru.

LOGICAL_FILE_NAME NAME

Určuje logický název souboru. NÁZEV je vyžadován při zadání NÁZEV SOUBORU, s výjimkou případů, kdy je zadána jedna z klauzulí FOR ATTACH. Souborová skupina FILESTREAM nemůže mít název PRIMARY.

logical_file_name

Je 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

Je 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 spuštěním příkazu CREATE DATABASE. Další informace najdete v tématu Soubory databáze a skupiny souborů dále v tomto článku.

Parametry SIZE, MAXSIZE a FILEGROWTH lze nastavit, pokud 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 podporovány v SQL Serveru 2014 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 NÁZEV SOUBORU na cestu, 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 příkazu ALTER DATABASE, ale složka MyFilestreamData nesmí existovat.

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

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

Velikost velikosti

Určuje velikost souboru.

Velikost nelze zadat, pokud je os_file_name zadána jako cesta UNC. Velikost se nevztahuje na skupinu souborů FILESTREAM.

velikosti

Je počáteční velikost souboru.

Pokud velikost primárního souboru není zadána, databázový stroj použije velikost primárního souboru v databázi model. Výchozí velikost databáze model je 8 MB (počínaje SQL Serverem 2016 (13.x)) nebo 1 MB (pro starší verze). Pokud je zadán sekundární datový soubor nebo soubor protokolu, ale velikost není pro soubor 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. Velikost je celočíselná hodnota. Pro hodnoty větší než 2147483647 použijte větší jednotky.

MAX_SIZE MAXSIZE

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

max_size

Je 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í zadán max_size, soubor se rozrůstá, dokud nebude disk plný. 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

Při zadání této možnosti pro kontejner FILESTREAM neexistuje žá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 pro soubor nemůže překročit nastavení MAXSIZE. FileGROWTH nelze zadat, pokud je os_file_name zadána jako cesta UNC. FileGROWTH se nevztahuje na filegroup FILESTREAM.

growth_increment

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

Hodnotu lze zadat v MB, kB, GB, TB nebo procentech (%). Pokud je zadané číslo bez přípony MB, kB nebo %, výchozí hodnota je MB. 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 parametr FILEGROWTH není zadaný, 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) Data 10%. Soubory protokolu 10%.

< > skupiny souborů

Řídí vlastnosti skupiny souborů. Pro snímek databáze nelze zadat skupinu souborů.

filegroup_name FILEGROUP

Je 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.

CONTAINS MEMORY_OPTIMIZED_DATA

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

Určuje, že skupina souborů ukládá memory_optimized data v systému souborů. Další informace najdete v tématu In-Memory Přehled optimalizace a scénáře použití. Pro každou databázi je povolena 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

Je 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í klauzule CREATE DATABASE ON, příkaz selže a vyvolá se chyba.

Popisy názvu a názvu souboru a jejich hodnot najdete v popisech ekvivalentních hodnot <filepec>.

Poznámka

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

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.

Před SQL Serverem 2019 nemohla zdrojová databáze snímku databáze obsahovat skupinu souborů MEMORY_OPTIMIZED_DATA. V SQL Serveru 2019 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ého dokončování (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 příkaz CREATE DATABASE pomocí následujícího postupu:

  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
  • FileStream
  • 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 databáze nemůže příkaz CREATE DATABASE odkazovat na soubory protokolu, offline soubory, obnovení souborů a nefunkční 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 se nesmadí pomocí DROP DATABASE.

Další informace najdete v tématu snímky databáze a vytvoření snímku databáze (Transact-SQL).

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 Options.

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 databázi model nemá vliv na existující databáze. Pokud je pro příkaz CREATE DATABASE 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. Protože příkaz nemá žádné <souborypec> položky, primární databázový soubor je velikost model primárního souboru databáze. Transakční protokol je nastaven na větší z těchto hodnot: 512 kB nebo 25% velikost primárního datového souboru. Protože parametr MAXSIZE není zadaný, mohou 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 pro soubor Sales_dat není zadána mb ani kB, používá MB a je přidělen 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 = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
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 = 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. 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 určeny 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 = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB ) ;
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 klauzuli FOR ATTACH zadán pouze primární soubor. Počínaje SQL Serverem 2005 (9.x) budou všechny fulltextové soubory, které jsou součástí připojené databáze, připojeny k databázi.

USE master;
GO
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í je zadán každý soubor ve zdrojové databázi a skupiny souborů nejsou zadány.

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 AdventureWorks2022 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
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í filegroup 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 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. 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 = 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 *

spravované instance SQL

 

SQL Database

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.

Syntax

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

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.

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ázi přiřazena výchozí kolace, která je SQL_Latin1_General_CP1_CI_AS.

Další informace o názvech kolace Windows a SQLCOLLATE (Transact-SQL).

CATALOG_COLLATION

Určuje výchozí kolaci pro katalog metadat. Argument CATALOG_COLLATION je k dispozici pouze při 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 se katalog metadat používaných pro systémová zobrazení a systémové tabulky kompletují tak, aby odpovídaly kolaci pro databázi. 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žije výchozí SQL_Latin1_General_CP1_CI_AS kolaci nerozlišující malá a velká písmena pro identifikátory objektu.

    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žije 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'}

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í.

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.

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');.

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 možnosti LEDGER nelze po vytvoření databáze změnit. Další informace naleznete v tématu Konfigurace databáze registru.

MAXSIZE

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

Následují podporované hodnoty MAXSIZE 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
100 MB
500 MB
1 GB
2 GB √ (D)
5 GB Není k dispozici
10 GB Není k dispozici
20 GB Není k dispozici
30 GB Není k dispozici
40 GB Není k dispozici
50 GB Není k dispozici
100 GB Není k dispozici
150 GB Není k dispozici
200 GB Není k dispozici
250 GB Není k dispozici √ (D) √ (D)
300 GB Není k dispozici Není k dispozici
400 GB Není k dispozici Není k dispozici
500 GB Není k dispozici Není k dispozici √ (D)
750 GB Není k dispozici Není k dispozici
1 024 GB Není k dispozici Není k dispozici √ (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

* P11 a P15 umožňují 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 Premium je maxSIZE větší než 1 TB aktuálně k dispozici v následujících oblastech: USA – východ 2, USA – západ, US Gov – Virginie, 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ů DTU.

Hodnota MAXSIZE pro model DTU , pokud je zadána, 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 argumenty MAXSIZE a EDITION:

  • Pokud je zadaná edice, ale není zadána hodnota MAXSIZE, použije se výchozí hodnota edice. Pokud je například edice nastavena na Standard a maxSIZE není zadána, maxSIZE je automaticky nastavena na 250 MB.
  • Pokud není zadána hodnota MAXSIZE ani EDITION, je edice nastavena na GeneralPurposea 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á SERVICE_OBJECTIVE edice nepodporuje, 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 hodnotu EDICE. 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áze na ELASTIC_POOL a zadejte název fondu. Další informace najdete v tématu Vytvoření a správa elastického fondu SLUŽBY 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, ve kterém 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. Pokud k tomu dojde, nemůžete vkládat ani aktualizovat data nebo 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ě. Než budete moct vložit nová data, může to být až patnáctiminutové zpoždění.

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 služby SQL Database: Dotazování percentage_complete nebo replication_state_desc sloupců v dm_database_copies nebo state sloupci v zobrazení sys.databases. Zobrazení sys.dm_operation_status lze použít a také vrací stav databázových operací včetně kopírování databáze.

V době úspěšného dokončení procesu kopírování je cílová databáze transakční v souladu 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.
  • 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 Vytvoření kopie databáze Azure SQL pomocí jazyka Transact-SQL.

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

Jednoduchý příklad

Jednoduchý příklad pro vytvoření databáze.

CREATE DATABASE TestDB1;

Jednoduchý příklad s edicí

Jednoduchý 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 ozabzw7545.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 ozabzw7545.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, což 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 (pokud jsou nakonfigurované) budou používat 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 Managed Instance *

 

Spravovaná instance Azure SQL

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.

Syntax

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 je počáteční hodnota MAXSIZE implicitně nastavená 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 MAXSIZE 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.

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ázi přiřazena výchozí kolace, která je SQL_Latin1_General_CP1_CI_AS.

Další informace o názvech kolace Windows a SQLCOLLATE (Transact-SQL).

LEDGER = {ON | OFF }

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 možnosti LEDGER 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.

  • WITHmož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í

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

  • 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 dbcreator

Příklady

Jednoduchý příklad

Jednoduchý 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 se podporuje pro samostatné vyhrazené fondy SQL (dříve SQL DW) s využitím úrovní služeb Gen2.
  • CREATE DATABASE není podporováno pro vyhrazené fondy SQL v pracovním prostoru Služby Azure Synapse Analytics. Místo toho použítwebu Azure Portal.
  • FUNKCE CREATE DATABASE je podporovaná pro bezserverové fondy SQL ve službě Azure Synapse Analytics.

Syntax

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.

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ázi přiřazena výchozí kolace, která je SQL_Latin1_General_CP1_CI_AS.

Další informace o názvech kolace Windows a SQL naleznete v tématuCOLLATE (Transact-SQL).

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 nemohou růst nad rámec maxSIZE. Data komprimovaná do formátu columnstore nemají limit velikosti a není omezena hodnotou 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.

Azure Synapse je nastavený na COMPATIBILITY_LEVEL 130 a nedá se změnit. Další informace najdete v tématu Vyšší výkon dotazů s úrovní kompatibility 130 ve službě Azure SQL Database.

Dovolení

Požadovaná oprávnění:

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

Zpracování chyb

Pokud velikost databáze dosáhne hodnoty MAXSIZE, zobrazí se kód chyby 40544. Pokud 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 uvolnilo místo v úložišti. 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 nelze změnit kolaci databáze.

Příklady: Azure Synapse Analytics

A. Jednoduchý příklad

Jednoduchý příklad pro 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. Jednoduchý 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.

Syntax

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 | PRYČ

Určuje, jestli se parametry replicated_size, distributed_sizea log_size pro tuto databázi automaticky zvětší podle potřeby nad rámec zadaných velikostí. Výchozí hodnota je VYPNUTO.

Pokud je funkce AUTOGROW zapnutá, replicated_size, distributed_sizea log_size se zvýší podle potřeby (ne v blocích počáteční zadané velikosti) s každou vložením, aktualizací nebo jinou akcí, která vyžaduje více úložiště, než je již přiděleno.

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

FUNKCE AUTOGROW je pro všechny velikosti zapnutá nebo vypnutá pro všechny velikosti. Například není možné nastavit FUNKCI AUTOGROW ON pro log_size, ale není nastavena pro replicated_size.

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 je funkce AUTOGROW zapnutá, budou replikované tabulky povolené růst nad rámec tohoto limitu.

Pokud je funkce AUTOGROW VYPNUTÁ, 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 je funkce AUTOGROW zapnutá, budou distribuované tabulky povolené růst nad rámec tohoto limitu.

Pokud je funkce AUTOGROW VYPNUTÁ, vrátí se chyba, pokud se uživatel pokusí vytvořit novou distribuovanou tabulku, vložit data do existující distribuované tabulky nebo aktualizovat 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 je funkce AUTOGROW zapnutá, může se soubor protokolu zvětšit nad rámec tohoto limitu. Pomocí příkazu DBCC SHRINKLOG (Azure Synapse Analytics) zmenšete velikost souborů protokolu na původní velikost.

Pokud je funkce AUTOGROW VYPNUTÁ, 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 bude moct používat všechny funkce SQL Serveru 2014 (12.x), které pdW používá.

Omezení a omezení

Příkaz CREATE DATABASE není v explicitní transakci povolen. Další informace naleznete v tématu 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.

Metadata

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

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 funkce AUTOGROW ve výchozím nastavení vypnutá.

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 jako výše, s tím rozdílem, že funkce 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 funkcí AUTOGROW, přidělením ú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);