Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 *
Azure Synapse
analýzy
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
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 OFFNeaktuální přístup je zakázaný. READONLYData FILESTREAM v této databázi lze číst neaktuálními procesy. FULLJe 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
CONTAINMENTje nastavena naPARTIALhodnotu . PokudCONTAINMENTje nastavená hodnota , dojde kNONEchybá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 DATABASEpříkazu. Další informace najdete v tématu Soubory databáze a skupiny souborů dále v tomto článku.SIZE, aMAXSIZEparametry 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,
FILENAMEkde budou uložena data FILESTREAM. Cesta až do poslední složky musí existovat a poslední složka nesmí existovat. Pokud například zadáte cestuC:\MyFiles\MyFilestreamData,C:\MyFilesmusí existovat před spuštěnímALTER DATABASE, aleMyFilestreamDatasložka nesmí existovat.Skupina souborů a soubor (
<filespec>) musí být vytvořeny ve stejném příkazu.SIZEVlastnostiFILEGROWTHse 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
modeldatabázi. Výchozí velikost databázemodelje 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í soubormodeldatabá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říponyKB,MBnebo%přípony, jeMBvý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
FILEGROWTHnení 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
PRIMARYaPRIMARY_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_DATAskupina 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ů:
- SQL Server používá kopii databáze modelu k inicializaci databáze a jejích metadat.
- Identifikátor GUID zprostředkovatele služeb je přiřazen k databázi.
- 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_dataSpri2_dat. PřírůstkyFILEGROWTHpro tyto soubory jsou zadány jako15%. - Skupina souborů s názvem
SalesGroup1se souborySGrp1Fi1aSGrp1Fi2. - Skupina souborů s názvem
SalesGroup2se souborySGrp2Fi1aSGrp2Fi2.
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_dataobsahuje data řádků. Obsahuje jeden soubor,FileStreamDB_data.mdfs výchozí cestou.FileStreamPhotosobsahuje data FILESTREAM. Obsahuje dva datové kontejnery FILESTREAM,FSPhotos, umístěné vC:\MyFSfolder\PhotosaFSPhotos2, umístěné vD:\MyFSfolder\Photos. Označí se jako výchozí souborová skupina FILESTREAM.FileStreamResumesobsahuje data FILESTREAM. Obsahuje jeden datový kontejner FILESTREAM,FSResumes, umístěný vC:\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
Související obsah
- ALTER DATABASE (Transact-SQL)
- Odpojení a připojení databáze (SQL Server)
-
DROP DATABASE (Transact-SQL) - EVENTDATA (Transact-SQL)
- ZMĚNIT AUTORIZACI (Transact-SQL)
- sp_detach_db
- sp_removedbreplication
- Snímky databáze (SQL Server)
- Přesunutí souborů databáze
- databáze
- Data binárního velkého objektu (blob) (SQL Server)
* SQL databáze *
Azure Synapse
analýzy
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_ASkolaci 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
EDITIONje zadán, aleMAXSIZEnení zadán, použije se výchozí hodnota pro edici. PokudEDITIONje například nastavená hodnota Standard aMAXSIZEnení zadána, maximální velikost se automaticky nastaví na 250 MB.MAXSIZEEDITIONPokud ani není zadána, je nastavenaEDITIONna GeneralPurpose aMAXSIZEje 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,P15Pro 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_8pro obecné účely, zřízené výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader. -
GP_S_Gen5_8pro obecné účely, bezserverové výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader. -
HS_Gen5_8pro Hyperscale, zřízené výpočetní prostředky, řady Standard (Gen5), 8 virtuálních jader. -
HS_S_Gen5_8pro Hyperscale, bezserverové výpočetní prostředky, řadu Standard (Gen5), 8 virtuálních jader.
-
- Například:
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 OFnepodporuje plně kvalifikované jedinečné názvy domén. Jinými slovy, pokud je plně kvalifikovaný název domény vašeho serveruserverName.database.windows.net, použijte pouzeserverNamebě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žijte
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_completesloupce neboreplication_state_descve dm_database_copies nebo nastatesloupec vsys.databaseszobrazení. 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 DATABASEmusí být proveden v kontextumasterdatabá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 DATABASEaDROP DATABASEmůž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');
Související obsah
* SQL spravovaná instance *
Azure Synapse
analýzy
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.
WITHmožnosti nejsou podporovány, s výjimkouWITH LEDGER.Spropitné
Jako alternativní řešení použijte ALTER DATABASE. po
CREATE DATABASEnastavit 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;
Související obsah
* 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 DATABASEpodporuje samostatné vyhrazené fondy SQL (dříve SQL DW) s využitím úrovní služeb Gen2. -
CREATE DATABASEnepodporuje vyhrazené fondy SQL v pracovním prostoru Azure Synapse Analytics. Místo toho použítwebu Azure Portal. -
CREATE DATABASEpodporuje 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ématuAzure 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;
Související obsah
-
ALTER DATABASE (Azure Synapse Analytics) - Vytvořit tabulku (CREATE TABLE)
-
DROP DATABASE (Transact-SQL)
Azure Synapse
analýzy
* 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
- 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);
Související obsah
- ALTER DATABASE (Analytics Platform System)
-
DROP DATABASE (Transact-SQL)