Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Új adatbázist hoz létre.
Válassza az alábbi fülek egyikét egy adott SQL-verzió szintaxisához, argumentumaihoz, megjegyzéseihez, engedélyeihez és példáihoz.
Termék kiválasztása
A következő sorban válassza ki a kívánt terméknevet, és csak az adott termék adatai jelenjenek meg.
* SQL Server *
SQL Server
Áttekintés
Az SQL Serverben ez az utasítás létrehoz egy új adatbázist, valamint a használt fájlokat és azok fájlcsoportjait. Használható adatbázis-pillanatképek létrehozására, vagy adatbázisfájlok csatolására is, hogy adatbázist hozzon létre egy másik adatbázis leválasztott fájljaiból.
Szintaxis
Hozzon létre egy adatbázist.
A szintaxisi konvenciókról további információt Transact-SQL szintaxiskonvenciákat.
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 ]
}
Adatbázis csatolása:
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
}
Adatbázis-pillanatkép létrehozása:
CREATE DATABASE database_snapshot_name
ON
(
NAME = logical_file_name ,
FILENAME = 'os_file_name'
) [ , ...n ]
AS SNAPSHOT OF
[ ; ]
Érvek
database_name
Az új adatbázis neve. Az adatbázisneveknek egyedinek kell lenniük az SQL Server egy példányán belül, és meg kell felelniük azonosítókszabályainak.
database_name legfeljebb 128 karakter hosszúságú lehet, kivéve, ha nincs megadva logikai név a naplófájlhoz. Ha nincs megadva logikai naplófájl neve, az SQL Server egy utó database_name tag hozzáfűzésével létrehozza a napló logical_file_name és os_file_name. Ez database_name 123 karakterre korlátozza, hogy a létrehozott logikai fájlnév legfeljebb 128 karakter legyen.
Ha nincs megadva adatfájlnév, az SQL Server database_namelogical_file_name ésos_file_name is használ. Az alapértelmezett elérési út a beállításjegyzékből származik. Az alapértelmezett elérési út módosítható a Kiszolgáló tulajdonságai (Adatbázis beállításai lap) a Management Studióban. Az alapértelmezett elérési út módosításához újra kell indítani az SQL Servert.
CONTAINMENT = { NONE | RÉSZLEGES }
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
Az adatbázis elszigetelési állapotát adja meg.
-
NONE= nem tartalmazott adatbázis. -
PARTIAL= részben tartalmazott adatbázis.
RA
Megadja, hogy az adatbázis adatszakaszainak, adatfájljainak tárolására használt lemezfájlok explicit módon vannak definiálva.
ON akkor szükséges, ha az elsődleges fájlcsoport adatfájljait meghatározó elemek vesszővel tagolt listája <filespec> következik. Az elsődleges fájlcsoportban lévő fájlok listáját a felhasználói fájlcsoportokat és fájljaikat meghatározó elemek opcionális, vesszővel tagolt listája <filegroup> követheti.
ELSŐDLEGES
Megadja, hogy a társított <filespec> lista határozza meg az elsődleges fájlt. Az elsődleges fájlcsoport bejegyzésében megadott <filespec> első fájl lesz az elsődleges fájl. Egy adatbázis csak egy elsődleges fájllal rendelkezhet. További információ: Adatbázisfájlok és fájlcsoportok.
Ha PRIMARY nincs megadva, az utasításban CREATE DATABASE szereplő első fájl lesz az elsődleges fájl.
BEJELENTKEZIK
Megadja, hogy az adatbázisnapló, naplófájlok tárolására használt lemezfájlok explicit módon vannak definiálva.
LOG ON a naplófájlokat meghatározó elemek vesszővel tagolt listája <filespec> követi. Ha LOG ON nincs megadva, a rendszer automatikusan létrehoz egy naplófájlt, amelynek mérete az adatbázis összes adatfájljának 25%-a, vagy 512 KB, amelyik nagyobb. Ez a fájl az alapértelmezett naplófájl-helyre kerül. Erről a helyről további információt az adatok és naplófájlok alapértelmezett helyének megtekintése vagy módosítása című témakörben talál.
LOG ON nem adható meg adatbázis-pillanatképen.
COLLATION_NAME RENDEZÉSE
Az adatbázis alapértelmezett rendezési értékét adja meg. A rendezés neve lehet Windows-rendezési név vagy SQL-rendezés neve. Ha nincs megadva, az adatbázis az SQL Server-példány alapértelmezett rendezéséhez van hozzárendelve. Az adatbázis-pillanatképeken nem adható meg rendezési név.
A rendezés neve nem adható meg a FOR ATTACH záradékokkal együtt FOR ATTACH_REBUILD_LOG . A csatolt adatbázisok rendezésének módosításáról az adatbázis-rendezés beállítása vagy módosítása című témakörben olvashat bővebben.
A Windows és az SQL-rendezés nevével kapcsolatos további információkért lásd a COLLATE című témakört.
Jegyzet
A tartalmazott adatbázisok másképpen vannak rendezve, mint a nem tartalmazott adatbázisok. További információ: Tartalmazott adatbázis-rendezések.
WITH opció <>
<filestream_option>
NON_TRANSACTED_ACCESS = { KI | READ_ONLY | FULL }
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
Megadja az adatbázishoz való nem tranzakciós FILESTREAM-hozzáférés szintjét.
Érték Leírás OFFA nem tranzakciós hozzáférés le van tiltva. READONLYAz adatbázisban lévő FILESTREAM-adatok nem tranzakciós folyamatok által olvashatók. FULLA FILESTREAM FileTables teljes nem tranzakciós hozzáférése engedélyezve van. DIRECTORY_NAME = <directory_name>
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
Windows-kompatibilis címtárnév. Ennek a névnek egyedinek kell lennie az SQL Server-példány összes Database_Directory neve között. Az egyediség-összehasonlítás az SQL Server rendezési beállításaitól függetlenül érzéketlen a kis- és nagybetűk között. Ezt a beállítást be kell állítani, mielőtt létrehoz egy Fájltáblát az adatbázisban.
A következő beállítások csak akkor engedélyezettek, ha
CONTAINMENTbe van állítva.PARTIALHaCONTAINMENTbe van állítvaNONE, hibák lépnek fel.
DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <nyelvnév> | <nyelvi alias>
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
A beállítás teljes leírását lásd : Kiszolgálókonfiguráció: alapértelmezett teljes szöveges nyelv .
DEFAULT_LANGUAGE = <lcid> | <nyelvnév> | <nyelvi alias>
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
A beállítás teljes leírását lásd : Kiszolgálókonfiguráció: alapértelmezett nyelv .
NESTED_TRIGGERS = { KI | ON }
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
A beállítás teljes leírását lásd : Kiszolgálókonfiguráció: beágyazott eseményindítók .
TRANSFORM_NOISE_WORDS = { KI | ON }
A következővonatkozik: SQL Server 2012 (11.x) és újabb verziók
A beállítás teljes leírását lásd : Kiszolgálókonfiguráció: zajszavak átalakítása .
TWO_DIGIT_YEAR_CUTOFF = { 2049 | <1753 és 9999 közötti bármely évben> }
Négy számjegy, amely egy évet jelöl. A 2049 az alapértelmezett érték. A beállítás teljes leírását lásd : Kiszolgálókonfiguráció: kétjegyű évkizártság .
DB_CHAINING { KI | ON }
Ha ON meg van adva, az adatbázis lehet egy adatbázisközi tulajdonjogi lánc forrása vagy célja.
Amikor OFFaz adatbázis nem tud részt venni az adatbázis-tulajdonjogok közötti láncolásban. Az alapértelmezett érték a OFF.
Fontos
Az SQL Server példánya akkor ismeri fel ezt a beállítást, ha az adatbázis tulajdonjogának láncoló kiszolgálója 0 (OFF). Ha az adatbázisközi tulajdonjog-láncolás 1 (ON), minden felhasználói adatbázis részt vehet adatbázisközi tulajdonjogi láncokban, függetlenül a lehetőség értékétől. Ez a beállítás a sp_configurehasználatával van beállítva.
A beállítás beállításához a sysadmin rögzített kiszolgálói szerepkör tagságára van szükség. A DB_CHAINING beállítás nem állítható be a következő rendszeradatbázisokon: master, model, tempdb.
MEGBÍZHATÓ { KI | BE }
Ha ON meg van adva, a megszemélyesítési környezetet használó adatbázismodulok (például nézetek, felhasználó által definiált függvények vagy tárolt eljárások) hozzáférhetnek az adatbázison kívüli erőforrásokhoz.
Amikor OFFegy megszemélyesítési környezetben lévő adatbázismodulok nem férnek hozzá az adatbázison kívüli erőforrásokhoz. Az alapértelmezett érték a OFF.
TRUSTWORTHY beállítás az OFF adatbázis csatolásakor van beállítva.
Alapértelmezés szerint az adatbázis kivételével az msdb összes rendszeradatbázis a következőre TRUSTWORTHYvan OFF állítva: . Az érték nem módosítható az és az modeltempdb adatbázisok esetében. Javasoljuk, hogy soha ne állítsa be az TRUSTWORTHY adatbázis beállítását ONmaster .
PERSISTENT_LOG_BUFFER = BE ( DIRECTORY_NAME = "directory_name" )
A következőkre vonatkozik: SQL Server 2017 (14.x) és újabb verziók
Ha ez a beállítás meg van adva, a tranzakciónapló-puffer egy olyan köteten jön létre, amely a Storage Class Memory (NVDIMM-N nemvolatile storage) által támogatott lemezeszközön található, más néven állandó naplópufferen. További információ: Tranzakció véglegesítés késésének gyorsítása a Tárosztály memória és Állandó naplópuffer hozzáadása adatbázishoz.
LEDGER = { ON | KI }
Ha ONértékre van állítva, létrehoz egy főkönyv-adatbázist, amelyben az összes felhasználói adat integritása védett. A főkönyv-adatbázisban csak a főkönyvtáblák hozhatók létre. Az alapértelmezett érték a OFF. A beállítás értéke LEDGER nem módosítható az adatbázis létrehozása után. További információ: Főkönyvi adatbázis konfigurálása.
ADATBÁZIS LÉTREHOZÁSA ... CSATOLÁSHOZ [ ATTACH_DATABASE_OPTION<]>
Megadja, hogy az adatbázist egy meglévő operációsrendszer-fájlkészlet csatolásával hozza létre <filespec> bejegyzésnek, amely meghatározza az elsődleges fájlt. Csak <filespec> azokhoz a fájlokhoz kell bejegyzéseket bevinni, amelyek elérési útja eltér az adatbázis első létrehozásának vagy utolsó csatolásának időpontjától. Ezekhez a fájlokhoz meg kell adni egy <filespec> bejegyzést.
FOR ATTACH Megköveteli:
- Minden adatfájlnak (MDF és NDF) elérhetőnek kell lennie.
- Ha több naplófájl is létezik, az összesnek elérhetőnek kell lennie.
Ha egy olvasási/írási adatbázis egyetlen naplófájllal rendelkezik, amely jelenleg nem érhető el, és ha az adatbázist felhasználók nélkül állították le, vagy tranzakciókat nyitottak meg a ATTACH művelet előtt, FOR ATTACH automatikusan újraépíti a naplófájlt, és frissíti az elsődleges fájlt. Ezzel szemben egy írásvédett adatbázis esetében a naplót nem lehet újraépíteni, mert az elsődleges fájl nem frissíthető. Ezért ha csak olvasható adatbázist csatol egy nem elérhető naplóhoz, meg kell adnia a naplófájlokat vagy a FOR ATTACH záradékban lévő fájlokat.
Jegyzet
Az SQL Server újabb verziójával létrehozott adatbázis nem csatolható a korábbi verziókhoz.
Az SQL Serverben a csatolt adatbázis részét képező teljes szöveges fájlok az adatbázishoz vannak csatolva. A teljes szöveges katalógus új elérési útjának megadásához adja meg az új helyet a teljes szöveges operációsrendszer-fájlnév nélkül. További információ: Példák.
A "Könyvtárnév" FILESTREAM beállítást tartalmazó adatbázis csatolása arra kéri az SQL Servert, hogy ellenőrizze, hogy a Database_Directory név egyedi-e. Ha nem, a ATTACH művelet a következő hibával meghiúsul: FILESTREAM Database_Directory name is not unique in this SQL Server instance. A hiba elkerülése érdekében az opcionális paramétert (directory_name) át kell adni ennek a műveletnek.
FOR ATTACH nem adható meg adatbázis-pillanatképen.
FOR ATTACH megadhatja a RESTRICTED_USER beállítást.
RESTRICTED_USER Csak a db_owner rögzített adatbázis-szerepkör és a dbcreator és a sysadmin rögzített kiszolgálói szerepkörök tagjai csatlakozhatnak az adatbázishoz, de nem korlátozza a számukat. A nem minősített felhasználók kísérleteit a rendszer elutasítja.
<service_broker_option>
Ha az adatbázis Service Broker, használja a WITH <service_broker_option> záradékban a következőtFOR ATTACH:
Szabályozza a Service Broker üzenetkézbesítését és az adatbázis Service Broker-azonosítóit. Service Broker opciók csak a FOR ATTACH záradék használata esetén adhatók meg.
ENABLE_BROKER
Megadja, hogy a Szolgáltatásközvetítő engedélyezve van-e a megadott adatbázishoz. Ez azt jelent, hogy az üzenetkézbesítés elindul, és is_broker_enabled igaz értékre van állítva a sys.databases katalógusnézetben. Az adatbázis megőrzi a meglévő Service Broker-azonosítót.
NEW_BROKER
Új service_broker_guid értéket hoz létre a sys.databases és a visszaállított adatbázisban is. Az összes beszélgetési végpont törléssel végződik. A közvetítő engedélyezve van, de a rendszer nem küld üzenetet a távoli beszélgetési végpontoknak. A régi Service Broker-azonosítóra hivatkozó útvonalakat újra létre kell hozni az új azonosítóval.
ERROR_BROKER_CONVERSATIONS
Az adatbázis csatolását vagy visszaállítását jelző hibaüzenettel végződik az összes beszélgetés. A közvetítő mindaddig le van tiltva, amíg a művelet befejeződik, majd engedélyezve nem lesz. Az adatbázis megőrzi a meglévő Service Broker-azonosítót.
Ha leválasztás helyett másolt replikált adatbázist csatol, fontolja meg a következőket:
- Ha az adatbázist ugyanahhoz a kiszolgálópéldányhoz és verzióhoz csatolja, mint az eredeti adatbázis, nincs szükség további lépésekre.
- Ha ugyanahhoz a kiszolgálópéldányhoz, de frissített verzióval csatolja az adatbázist, a csatolási művelet befejezése után sp_vupgrade_replication kell végrehajtania a replikáció frissítéséhez.
- Ha az adatbázist egy másik kiszolgálópéldányhoz csatolja, a verziótól függetlenül a csatolási művelet befejeződése után sp_removedbreplication kell végrehajtania a replikáció eltávolításához.
Jegyzet
A csatolás a vardecimális tárolóformátummal működik, de az SQL Server adatbázismotort frissíteni kell legalább az SQL Server 2005 (9.x) SP2-re. Nem csatolhat adatbázist vardecimális tárolási formátummal az SQL Server egy korábbi verziójához. A vardecimális tárolási formátumról további információt az Adattömörítés című témakörben talál.
Amikor egy adatbázist először csatolnak vagy visszaállítanak az SQL Server új példányára, az adatbázis főkulcsának (a szolgáltatás főkulcsa által titkosított) másolatát még nem tárolja a rendszer a kiszolgálón. Az adatbázis főkulcsának (DMK) visszafejtéséhez a OPEN MASTER KEY utasítást kell használnia. A DMK visszafejtése után a jövőben engedélyezheti az automatikus visszafejtést az ALTER MASTER KEY REGENERATE utasítással a kiszolgáló üzembe helyezéséhez a szolgáltatás főkulcsával (SMK) titkosított DMK másolatával. Ha egy adatbázist frissítettek egy korábbi verzióról, a DMK-t újra létre kell hozni az újabb AES-algoritmus használatához. További információ a DMK újragenerálásáról: ALTER MASTER KEY. A DMK-kulcs AES-re való frissítéséhez szükséges idő a DMK által védett objektumok számától függ. A DMK-kulcs újragenerálása az AES-re való frissítéshez csak egyszer szükséges, és nincs hatással a jövőbeli regenerációkra a kulcsforgatási stratégia részeként. Az adatbázisok csatolással történő frissítéséről további információt az Adatbázis frissítése leválasztással és csatolással című témakörben talál.
Fontos
Javasoljuk, hogy ne csatoljon ismeretlen vagy nem megbízható forrásokból származó adatbázisokat. Az ilyen adatbázisok rosszindulatú kódot tartalmazhatnak, amelyek nem szándékos Transact-SQL kódot hajthatnak végre, vagy hibákat okozhatnak a séma vagy a fizikai adatbázis szerkezetének módosításával. Mielőtt ismeretlen vagy nem megbízható forrásból származó adatbázist használna, futtassa DBCC CHECKDB az adatbázison egy nem gyártási kiszolgálón, és vizsgálja meg a kódot, például a tárolt eljárásokat vagy más felhasználó által definiált kódot az adatbázisban.
Jegyzet
Az TRUSTWORTHY adatbázisok csatolásakor a beállításoknak és DB_CHAINING a beállításoknak nincs hatása.
MERT ATTACH_REBUILD_LOG
Megadja, hogy az adatbázis egy meglévő operációsrendszer-fájlkészlet csatolásával jön létre. Ez a beállítás csak az adatbázisok olvasására/írására korlátozódik. Kell lennie egy <filespec> bejegyzésnek, amely meghatározza az elsődleges fájlt. Ha hiányzik egy vagy több tranzakciónapló-fájl, a naplófájl újraépül. A ATTACH_REBUILD_LOG automatikusan létrehoz egy új, 1 MB-os naplófájlt. Ez a fájl az alapértelmezett naplófájl-helyre kerül. Erről a helyről további információt az adatok és naplófájlok alapértelmezett helyének megtekintése vagy módosítása című témakörben talál.
Jegyzet
Ha a naplófájlok elérhetők, az adatbázismotor ezeket a fájlokat használja a naplófájlok újraépítése helyett.
FOR ATTACH_REBUILD_LOG a következő feltételeket igényli:
- Az adatbázis tiszta leállítása.
- Minden adatfájlnak (MDF és NDF) elérhetőnek kell lennie.
Fontos
Ez a művelet megszakítja a napló biztonsági mentési láncát. Javasoljuk, hogy a művelet befejezése után azonnal készítsen teljes biztonsági másolatot az adatbázisról. További információ: BACKUP.
Általában akkor használatos, FOR ATTACH_REBUILD_LOG ha egy nagy naplót tartalmazó olvasási/írási adatbázist másol egy másik kiszolgálóra, ahol a másolatot többnyire vagy csak olvasási műveletekhez használják, és ezért kevesebb naplóterületet igényel, mint az eredeti adatbázis.
FOR ATTACH_REBUILD_LOG nem adható meg adatbázis-pillanatképen.
Az adatbázisok csatolásáról és leválasztásáról további információt az Adatbázis leválasztása és csatolása (SQL Server) című témakörben talál.
<fájlspecifikáció>
Szabályozza a fájltulajdonságokat.
NÉV logical_file_name
Megadja a fájl logikai nevét.
NAME kötelező, ha FILENAME meg van adva, kivéve, ha az FOR ATTACH egyik záradékot megadja. A FILESTREAM fájlcsoport nem nevezhető el PRIMARY.
logical_file_name
Az SQL Serverben a fájlra való hivatkozáskor használt logikai név. Logical_file_name egyedinek kell lennie az adatbázisban, és meg kell felelnie azonosítókszabályainak. A név lehet karakter vagy Unicode-állandó, illetve normál vagy tagolt azonosító.
FÁJLNÉV { 'os_file_name' | 'filestream_path' }
Megadja az operációs rendszer (fizikai) fájlnevét.
os_file_name
Az operációs rendszer által a fájl létrehozásakor használt elérési út és fájlnév. A fájlnak a következő eszközök egyikén kell lennie: azon a helyi kiszolgálón, amelyre az SQL Server telepítve van, egy tárolóhálózaton [SAN], vagy egy iSCSI-alapú hálózaton. A megadott elérési útnak léteznie kell az
CREATE DATABASEutasítás végrehajtása előtt. További információ: adatbázisfájlok és fájlcsoportok a cikk későbbi részében.SIZE, ésMAXSIZEFILEGROWTHa paraméterek akkor állíthatók be, ha a fájlhoz UNC elérési út van megadva.Ha a fájl nyers partíción található, os_file_name csak egy meglévő nyers partíció meghajtóbetűjelét kell megadnia. Minden nyers partíción csak egy adatfájl hozható létre.
Jegyzet
A nyers partíciók nem támogatottak az SQL Server 2014 (12.x) és újabb verzióiban.
Az adatfájlokat csak akkor szabad tömörített fájlrendszerekre helyezni, ha a fájlok írásvédett másodlagos fájlok, vagy az adatbázis írásvédett. A naplófájlokat soha nem szabad tömörített fájlrendszerekre helyezni.
filestream_path
FILESTREAM-fájlcsoport
FILENAMEesetén a FÁJLSTREAM-adatok tárolásának elérési útja. Az utolsó mappához vezető elérési útnak léteznie kell, és az utolsó mappa nem létezhet. Ha például megadja az elérési utatC:\MyFiles\MyFilestreamData,C:\MyFilesa futtatásALTER DATABASEelőtt léteznie kell, de aMyFilestreamDatamappa nem létezhet.A fájlcsoportot és a fájlt (
<filespec>) ugyanabban az utasításban kell létrehozni.A
SIZEtulajdonságok nemFILEGROWTHvonatkoznak a FILESTREAM-fájlcsoportra.
MÉRET méret
Megadja a fájl méretét.
SIZE nem adható meg, ha a os_file_name UNC elérési útként van megadva.
SIZE fájlcsoportra nem vonatkozik.
méret
A fájl kezdeti mérete.
Ha nem adja meg a méretet az elsődleges fájlhoz, az adatbázismotor az adatbázis elsődleges fájljának
modelméretét használja. Amodeladatbázis alapértelmezett mérete 8 MB (az SQL Server 2016-tól kezdve (13.x)) vagy 1 MB (korábbi verziók esetén). Ha másodlagos adatfájlt vagy naplófájlt ad meg, de a méret nincs megadva a fájlhoz, az adatbázismotor 8 MB-ot (az SQL Server 2016-tól kezdve (13.x)) vagy 1 MB-ot (korábbi verziók esetén) készít. Az elsődleges fájlhoz megadott méretnek legalább akkoranak kell lennie, mint amodeladatbázis elsődleges fájlja.A kilobájt (KB), a megabájt (MB), a gigabájt (GB) vagy a terabájt (TB) utótagok használhatók. Az alapértelmezett érték az MB. Adjon meg egy egész számot. Ne tartalmazzon tizedesvesszőt. a méret egész szám. A 2 147 483 647-nél nagyobb értékeknél használjon nagyobb egységeket.
MAXSIZE max_size
Megadja a fájl maximális méretét.
MAXSIZE nem adható meg, ha a os_file_name UNC elérési útként van megadva.
max_size
A maximális fájlméret. A KB, MB, GB és TB utótagok használhatók. Az alapértelmezett érték az MB. Adjon meg egy egész számot. Ne tartalmazzon tizedesvesszőt. Ha max_size nincs megadva, a fájl addig nő, amíg meg nem telik a lemez. Max_size egész szám. A 2147483647-nél nagyobb értékekhez használjon nagyobb egységeket.
KORLÁTLAN
Megadja, hogy a fájl növekedjen, amíg meg nem telik a lemez. Az SQL Serverben a korlátlan növekedéssel megadott naplófájlok maximális mérete 2 TB, az adatfájlok mérete pedig legfeljebb 16 TB.
Jegyzet
Nincs maximális méret, ha ez a beállítás meg van adva egy FILESTREAM-tárolóhoz. A lemez megteltéig folyamatosan nő.
FÁJLNÖVEKEDÉS growth_increment
A fájl automatikus növekedésnövekedését adja meg. Egy FILEGROWTH fájl beállítása nem haladhatja meg a MAXSIZE beállítást.
FILEGROWTH nem adható meg, ha a os_file_name UNC elérési útként van megadva.
FILEGROWTH fájlcsoportra nem vonatkozik.
growth_increment
A fájlhoz adott térköz minden alkalommal, amikor új tárhelyre van szükség.
Az érték megadható a ,
KB,MB,GBvagy százalék (TB) értékben%. Ha egy szám egy ,KBvagyMButótag nélkül%van megadva, az alapértelmezett érték.MBHa%meg van adva, a növekedési növekmény mérete a fájl méretének megadott százalékos aránya a növekmény bekövetkezésekor. A megadott méret a legközelebbi 64 KB-ra van kerekítve, a minimális érték pedig 64 KB.A 0 érték azt jelzi, hogy az automatikus növekedés ki van kapcsolva, és nincs további hely.
Ha
FILEGROWTHnincs megadva, az alapértelmezett értékek a következők:Verzió Alapértelmezett értékek Az SQL Server 2016 kezdete (13.x) Adatok 64 MB. Naplófájlok 64 MB. Az SQL Server 2005 kezdete (9.x) Adat 1 MB. Naplófájlok 10%. AZ SQL Server 2005 előtt (9.x) Adat 10%. Naplófájlok 10%.
<fájlcsoport>
Szabályozza a fájlcsoport tulajdonságait. A fájlcsoport nem adható meg adatbázis-pillanatképen.
FÁJLCSOPORT filegroup_name
A fájlcsoport logikai neve.
filegroup_name
filegroup_name egyedinek kell lennie az adatbázisban, és nem lehetnek a rendszer által megadott nevek
PRIMARYésPRIMARY_LOG. A név lehet karakter vagy Unicode-állandó, illetve normál vagy tagolt azonosító. A névnek meg kell felelnie azonosítókszabályainak.FILESTREAMET TARTALMAZ
Megadja, hogy a fájlcsoport a fájlrendszerben tárolja a FILESTREAM bináris nagy objektumokat (BLOB-okat).
ALAPÉRTELMEZETT
Megadja, hogy a névvel ellátott fájlcsoport az adatbázis alapértelmezett fájlcsoportja.
TARTALMAZ MEMORY_OPTIMIZED_DATA
: SQL Server 2014 (12.x) és újabb verziók
Megadja, hogy a fájlcsoport memory_optimized adatokat tárol a fájlrendszerben. További információ: In-Memory OLTP áttekintése és használati forgatókönyvei. Adatbázisonként csak egy
MEMORY_OPTIMIZED_DATAfájlcsoport engedélyezett. A memóriaoptimalizált adatok tárolására szolgáló fájlcsoportot létrehozó kódmintákért lásd: Memory-Optimized tábla és natívan lefordított tárolt eljárás létrehozása.
database_snapshot_name
Az új adatbázis-pillanatkép neve. Az adatbázis-pillanatképek nevének egyedinek kell lennie az SQL Server egy példányán belül, és meg kell felelnie az azonosítókra vonatkozó szabályoknak. database_snapshot_name legfeljebb 128 karakter hosszúságú lehet.
ON ( NAME = logical_file_name, FILENAME = 'os_file_name') [ ,... n ]
Adatbázis-pillanatkép létrehozásához megadja a forrásadatbázisban lévő fájlok listáját. A pillanatkép működéséhez az összes adatfájlt külön kell megadni. A naplófájlok azonban nem engedélyezettek az adatbázis-pillanatképekhez. A FILESTREAM-fájlcsoportokat az adatbázis-pillanatképek nem támogatják. Ha egy FILESTREAM-adatfájl szerepel egy CREATE DATABASE ON záradékban, az utasítás meghiúsul, és hiba lép fel.
A leírásokat NAME és FILENAME azok értékeit az egyenértékű <filespec> értékek leírásában tekinthetik meg.
Jegyzet
Adatbázis-pillanatkép létrehozásakor a rendszer nem engedélyezi a többi <filespec> lehetőséget és kulcsszót PRIMARY .
PILLANATKÉP A source_database_name
Azt adja meg, hogy a létrehozott adatbázis a source_database_nameáltal megadott forrásadatbázis adatbázis-pillanatképe. A pillanatképnek és a forrásadatbázisnak ugyanazon a példányon kell lennie.
Az SQL Server 2017 (14.x) és korábbi verzióiban az adatbázis-pillanatkép forrásadatbázisa nem tartalmazhat fájlcsoportot MEMORY_OPTIMIZED_DATA . Az SQL Server 2019-ben (15.x) hozzáadták a memórián belüli adatbázis-pillanatképek támogatását.
További információ: Database Snapshots.
Megjegyzések
A főadatbázis- biztonsági másolatot kell készíteni a felhasználói adatbázis létrehozása, módosítása vagy elvetése esetén.
Az CREATE DATABASE utasításnak automatikus kiegészítési módban (az alapértelmezett tranzakciókezelési módban) kell futnia, és explicit vagy implicit tranzakcióban nem engedélyezett.
Egy CREATE DATABASE utasítással létrehozhat egy adatbázist és az adatbázist tároló fájlokat. Az SQL Server az CREATE DATABASE alábbi lépések végrehajtásával implementálja az utasítást:
- Az SQL Server a modelladatbázis egy példányát használja az adatbázis és metaadatainak inicializálásához.
- A szolgáltatásközvetítő GUID-azonosítója hozzá van rendelve az adatbázishoz.
- Az adatbázismotor ezután üres oldalakkal tölti ki a többi adatbázist, kivéve azokat a lapokat, amelyek belső adatokkal rendelkeznek, amelyek rögzítik, hogyan használják a helyet az adatbázisban.
Az SQL Server egy példányán legfeljebb 32 767 adatbázis adható meg.
Minden adatbázis rendelkezik egy tulajdonossal, amely speciális tevékenységeket végezhet az adatbázisban. A tulajdonos az adatbázist létrehozó felhasználó. Az adatbázis tulajdonosa ALTER AUTHORIZATIONhasználatával módosítható.
Egyes adatbázis-funkciók a fájlrendszerben található funkcióktól és képességektől függenek az adatbázisok teljes funkcionalitása érdekében. Néhány példa a fájlrendszer funkciókészletétől függő funkciókra:
DBCC CHECKDB- Fájlfolyam
- Online biztonsági mentések VSS és fájlpillanatképek használatával
- Adatbázis-pillanatkép létrehozása
- Memóriaoptimalizált adatfájlcsoport
Adatbázisfájlok és fájlcsoportok
Minden adatbázis legalább két fájllal, egy elsődleges és egy tranzakciónapló-fájllalés legalább egy fájlcsoporttal rendelkezik. Minden adatbázishoz legfeljebb 32 767 fájl és 32 767 fájlcsoport adható meg.
Adatbázis létrehozásakor az adatfájlokat a lehető legnagyobb méretűre kell tenni az adatbázisban elvárt maximális adatmennyiség alapján.
Javasoljuk, hogy használjon tárolóhálózatot (SAN), iSCSI-alapú hálózatot vagy helyileg csatlakoztatott lemezt az SQL Server-adatbázisfájlok tárolásához, mivel ez a konfiguráció optimalizálja az SQL Server teljesítményét és megbízhatóságát.
Adatbázis-pillanatképek
A CREATE DATABASE utasítással írásvédett, statikus nézetet, adatbázis-pillanatképet hozhat létre a forrásadatbázis. Az adatbázis-pillanatképek tranzakciós szempontból konzisztensek a forrásadatbázissal, mivel a pillanatkép létrehozásakor léteztek. Egy forrásadatbázis több pillanatképet is tartalmazhat.
Jegyzet
Adatbázis-pillanatkép létrehozásakor az CREATE DATABASE utasítás nem hivatkozhat naplófájlra, offline fájlra, fájlok visszaállítására és megszűnt fájlokra.
Ha egy adatbázis-pillanatkép létrehozása sikertelen, a pillanatkép gyanússá válik, és törölni kell. További információ: DROP DATABASE.
Az egyes pillanatképek mindaddig megmaradnak, amíg a rendszer nem törli őket a használatával DROP DATABASE.
További információ: Adatbázis-pillanatképek (SQL Server) és adatbázis-pillanatkép létrehozása.
Adatbázis-beállítások
Adatbázis létrehozásakor több adatbázis-beállítás is automatikusan be van állítva. Ezeknek a beállításoknak a listáját az ALTER DATABASE SET beállításai között találja.
A modelladatbázis és az új adatbázisok létrehozása
A modelladatbázis összes felhasználó által definiált objektuma az összes újonnan létrehozott adatbázisba lesz másolva. Bármilyen objektumot, például táblákat, nézeteket, tárolt eljárásokat, adattípusokat stb. hozzáadhat a model adatbázishoz, hogy az összes újonnan létrehozott adatbázis része legyen.
Ha egy CREATE DATABASE <database_name> utasítás további méretparaméterek nélkül van megadva, az elsődleges adatfájl mérete megegyezik a model adatbázis elsődleges fájljának méretével.
Ha nincs megadva FOR ATTACH, minden új adatbázis örökli az adatbázis beállítási beállításait a model adatbázisból. Az adatbázis automatikus zsugorítási model adatbázis beállításait, ezek az új beállítási beállítások a létrehozott új adatbázisokban lesznek használva. Az adatbázis műveleteinek módosítása nincs hatással a model meglévő adatbázisokra. Ha a FOR ATTACH meg van adva az CREATE DATABASE utasításban, az új adatbázis örökli az eredeti adatbázis adatbázisbeállítási beállításait.
Adatbázis adatainak megtekintése
A katalógusnézetek, a rendszerfüggvények és a rendszer által tárolt eljárások segítségével adatokat adhat vissza az adatbázisokról, fájlokról és fájlcsoportokról. További információ: Rendszernézetek.
Engedélyek
CREATE DATABASE, CREATE ANY DATABASEvagy ALTER ANY DATABASE engedélyt igényel.
Az SQL Server egy példányán a lemezhasználat szabályozásának fenntartása érdekében az adatbázisok létrehozására vonatkozó engedély általában néhány bejelentkezésre korlátozódik.
Az alábbi példa engedélyt ad adatbázis létrehozására az adatbázis felhasználójának Fay.
USE master;
GO
GRANT CREATE DATABASE TO [Fay];
GO
Adatokra és naplófájlokra vonatkozó engedélyek
Az SQL Serverben bizonyos engedélyek vannak beállítva az egyes adatbázisok adataira és naplófájljaira. A következő engedélyek vannak beállítva, amikor a következő műveleteket alkalmazza egy adatbázisra:
- Csatolt
- Biztonsági mentés
- Létrehozott
- Közönyös
- Új fájl hozzáadására módosítva
- Visszaad
Az engedélyek megakadályozzák, hogy a fájlok véletlenül illetéktelenül módosítva legyenek, ha nyitott engedélyekkel rendelkező könyvtárban találhatók.
Jegyzet
A Microsoft SQL Server 2005 Express kiadás nem állít be adatokat és naplófájlengedélyeket.
Példák
Egy. Adatbázis létrehozása fájlok megadása nélkül
Az alábbi példa létrehozza az adatbázist mytest, és létrehoz egy megfelelő elsődleges és tranzakciós naplófájlt. Mivel az utasítás nem <filespec> tartalmaz elemeket, az elsődleges adatbázisfájl mérete megegyezik az model adatbázis elsődleges fájljával. A tranzakciónapló a nagyobb értékre van állítva: 512 KB vagy 25% az elsődleges adatfájl mérete. Mivel MAXSIZE nincs megadva, a fájlok növekedhetnek, hogy kitöltsék az összes rendelkezésre álló lemezterületet. Ez a példa azt is bemutatja, hogyan lehet elvetni a mytest nevű adatbázist, ha létezik, mielőtt létrehozza a mytest adatbázist.
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. Adatbázis létrehozása, amely meghatározza az adatokat és a tranzakciós naplófájlokat
Az alábbi példa létrehozza az adatbázist Sales. Mivel a kulcsszó PRIMARY nincs használatban, az első fájl (Sales_dat) lesz az elsődleges fájl. Mivel a fájl paraméterében SIZESales_dat sem MB, sem KB nincs megadva, megabájtban van MB lefoglalva. A Sales_log fájl megabájtban van lefoglalva, mert a MB utótag explicit módon szerepel a SIZE paraméterben.
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. Adatbázis létrehozása több adat- és tranzakciónapló-fájl megadásával
Az alábbi példa három Archive adatfájlt és két 100-MB tranzakciónapló-fájlt tartalmazó adatbázis-100-MB hoz létre. Az elsődleges fájl a lista első fájlja, és explicit módon van megadva a PRIMARY kulcsszóval. A tranzakciónapló-fájlok a LOG ON kulcsszavak alapján vannak megadva. Figyelje meg a fájlokhoz használt bővítményeket a FILENAME beállításban: .mdf elsődleges adatfájlokhoz, .ndf a másodlagos adatfájlokhoz, .ldf pedig tranzakciónapló-fájlokhoz. Ez a példa az adatbázist a D:-adatbázis helyett a master meghajtóra helyezi.
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. Fájlcsoportokat tartalmazó adatbázis létrehozása
Az alábbi példa a következő fájlcsoportokat tartalmazó adatbázis-Sales hozza létre:
- Az elsődleges fájlcsoport a
Spri1_datésSpri2_datfájlokkal. EzeknekFILEGROWTHa fájloknak a növekményei a következőképpen vannak megadva15%: . - Egy
SalesGroup1nevű fájlcsoport, amelySGrp1Fi1ésSGrp1Fi2fájlokat tartalmaz. - Egy
SalesGroup2nevű fájlcsoport, amelySGrp2Fi1ésSGrp2Fi2fájlokat tartalmaz.
Ez a példa különböző lemezeken helyezi el az adatokat és a naplófájlokat a teljesítmény javítása érdekében.
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. Adatbázis csatolása
Az alábbi példa leválasztja a D példában létrehozott Archive adatbázist, majd a FOR ATTACH záradékkal csatolja.
Archive több adat- és naplófájllal rendelkezik. Mivel azonban a fájlok helye a létrehozásuk óta nem változott, csak az elsődleges fájlt kell megadni a FOR ATTACH záradékban. Az SQL Server 2005 (9.x) verziótól kezdődően a csatolt adatbázis részét képező teljes szöveges fájlok az adatbázishoz lesznek csatolva.
USE master;
GO
EXECUTE sp_detach_db Archive;
GO
CREATE DATABASE Archive
ON
(FILENAME = 'D:\SalesData\archdat1.mdf') FOR ATTACH;
GO
F. Adatbázis-pillanatkép létrehozása
Az alábbi példa létrehozza az adatbázis pillanatképét sales_snapshot0600. Mivel az adatbázis-pillanatkép írásvédett, nem adható meg naplófájl. A szintaxisnak megfelelően a forrásadatbázis minden fájlja meg van adva, a fájlcsoportok pedig nincsenek megadva.
A példa forrásadatbázisa a D példában létrehozott Sales adatbázis.
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. Adatbázis létrehozása és rendezési név és beállítások megadása
Az alábbi példa létrehozza az adatbázist MyOptionsTest. Meg van adva egy rendezési név, és a TRUSTYWORTHY és DB_CHAINING beállítások 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. Áthelyezett teljes szöveges katalógus csatolása
Az alábbi példa csatolja a teljes szöveges katalógust AdvWksFtCat, valamint a AdventureWorks2025 adatokat és naplófájlokat. Ebben a példában a teljes szöveges katalógus átkerül az alapértelmezett helyről egy új helyre c:\myFTCatalogs. Az adatok és naplófájlok az alapértelmezett helyükön maradnak.
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
Én. Egy sorfájlcsoportot és két FILESTREAM-fájlcsoportot meghatározó adatbázis létrehozása
Az alábbi példa létrehozza a FileStreamDB adatbázist. Az adatbázis egy sorfájlcsoporttal és két FILESTREAM-fájlcsoporttal jön létre. Minden fájlcsoport egy fájlt tartalmaz:
FileStreamDB_datasoradatokat tartalmaz. Egy fájlt tartalmaz,FileStreamDB_data.mdfaz alapértelmezett elérési úttal.FileStreamPhotosFÁJLSTREAM-adatokat tartalmaz. Két FILESTREAM-adattárolót tartalmaz,FSPhotos,C:\MyFSfolder\PhotosésFSPhotos2,D:\MyFSfolder\Photos. Ez az alapértelmezett FILESTREAM-fájlcsoportként van megjelölve.FileStreamResumesFÁJLSTREAM-adatokat tartalmaz. Egy FILESTREAM-adattárolót tartalmaz,FSResumes, amely aC:\MyFSfolder\Resumestalálható.
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. Több fájlt tartalmazó FILESTREAM-fájlcsoportot tartalmazó adatbázis létrehozása
Az alábbi példa létrehozza a BlobStore1 adatbázist. Az adatbázis egy sorfájlcsoporttal és egy FILESTREAM fájlcsoporttal jön létre, FS. A FILESTREAM fájlcsoport két fájlt tartalmaz, FS1 és FS2. Ezután az adatbázist úgy módosítja, hogy hozzáad egy harmadik fájlt, FS3a FILESTREAM fájlcsoporthoz.
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
Kapcsolódó tartalom
- ADATBÁZIS MÓDOSÍTÁSA (Transact-SQL)
- Adatbázis leválasztása és csatolása (SQL Server)
- DROP DATABASE (Transact-SQL)
- ESEMÉNYADATOK (Transact-SQL)
- MÓDOSÍTÁSI ENGEDÉLYEZÉS (Transact-SQL)
- sp_detach_db
- sp_removedbreplication
- Adatbázis-pillanatképek (SQL Server)
- Adatbázisfájlok áthelyezése
- adatbázisok
- Bináris nagyméretű objektumok (Blob) adatai (SQL Server)
* SQL adatbázis *
SQL adatbázis
Áttekintés
Az Azure SQL Database-ben ez az utasítás egy Azure SQL-kiszolgálóval használható egyetlen adatbázis vagy adatbázis rugalmas készletben való létrehozásához. Ezzel az utasítással megadhatja az adatbázis nevét, rendezési módját, maximális méretét, kiadását, szolgáltatási célját, és adott esetben az új adatbázis rugalmas készletét. Az adatbázis rugalmas készletben való létrehozásához is használható. Emellett egy másik SQL Database-kiszolgálón is létrehozhatja az adatbázis másolatát.
Szintaxis
Adatbázis létrehozása
A szintaxisi konvenciókról további információt Transact-SQL szintaxiskonvenciákat.
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>) } } )
}
Adatbázis másolása
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' } ) ]
[ ; ]
Érvek
database_name
Az új adatbázis neve. Ennek a névnek egyedinek kell lennie az SQL Serveren, és meg kell felelnie az azonosítókRA vonatkozó SQL Server-szabályoknak. További információ: Adatbázis-azonosítók.
collation_name
Megadja az adatbázis adatainak alapértelmezett rendezést. Adja meg CATALOG_COLLATION a rendszer metaadatait, például az objektumazonosítókat.
A rendezés neve lehet Windows-rendezési név vagy SQL-rendezés neve. Ha nincs megadva, a rendszer az adatbázishoz rendeli hozzá az alapértelmezett rendezést, amely a következő SQL_Latin1_General_CP1_CI_AS: .
A Windows és az SQL-rendezés nevével kapcsolatos további információkért tekintse meg a COLLATE parancsot.
CATALOG_COLLATION
A metaadatkatalógus alapértelmezett rendezési értékét adja meg. Az CATALOG_COLLATION argumentum csak az adatbázis létrehozása során érhető el, és a létrehozás után nem módosítható.
Alapértelmezés szerint a rendszerobjektumok nevének metaadatkatalógusa rendezésbe SQL_Latin1_General_CP1_CI_AS van rendezve. Ez az alapértelmezett beállítás az Azure SQL Database-ben, ha CATALOG_COLLATION nincs meghatározva.
DATABASE_DEFAULT megadja, hogy a rendszernézetekhez és rendszertáblákhoz használt metaadatkatalógus az adatbázis rendezési rendszerének megfelelően legyen rendezve. Ha azt szeretné, hogy a rendszer metaadataiban szereplő objektumazonosítók ugyanazt az rendezést kövessék, mint az adatok, akkor létre kell hoznia az adatbázist WITH CATALOG_COLLATION = DATABASE_DEFAULT.
Előfordulhat, hogy az adatok és az objektumazonosítók különböző rendezési módokra van szüksége. Az alábbi példa a soradatok kis- és nagybetűk megkülönböztetésével hozza létre az adatbázist, de az objektumazonosítók esetében az alapértelmezett
SQL_Latin1_General_CP1_CI_ASkis- és nagybetűs rendezést használja.CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS;Ha azt szeretné, hogy az adatok és a rendszer metaadatai is ugyanazt a rendezést használják, adja meg a
WITH CATALOG_COLLATION = DATABASE_DEFAULT. Az alábbi példa egy kis- és nagybetűket megkülönböztető rendezéssel hozza létre az adatbázist, amelyet objektumazonosítókhoz használnak.CREATE DATABASE [same-collations] COLLATE SQL_Latin1_General_CP1_CS_AS WITH CATALOG_COLLATION = DATABASE_DEFAULT;
BACKUP_STORAGE_REDUNDANCY = {'LOCAL' | "ZONE" | "GEO" | "GEOZONE" }
Megadja, hogyan replikálódnak az adatbázisok időponthoz kötött visszaállítási és hosszú távú megőrzési biztonsági másolatai. A georedundáns visszaállítás vagy a regionális kimaradásból való helyreállítás csak akkor érhető el, ha az adatbázis GEO biztonsági mentési tár redundanciájával jön létre. Ha nincs explicit módon megadva, a T-SQL-lel létrehozott adatbázisok georedundáns biztonsági mentési tárolót használnak.
Geo-zóna redundáns tároláshoz használható GEOZONE . A geozóna redundáns tárolása (GZRS) a legmagasabb szintű védelmet nyújtja a zónakimaradások, valamint a regionális kimaradások ellen bármely számítási feladathoz.
Ha t-SQL használatával hoz létre adatbázist, LOCAL használja vagy ZONE adja meg a paraméter bemeneteként az BACKUP_STORAGE_REDUNDANCY adattárolást.
Ha egy adatbázist egy másik adatbázis AS COPY OFmásolataként hoz létre a , a beállítások megadása támogatott, és zárójelbe kell tenni. Például WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.
LEDGER = { ON | KI }
Ha ONértékre van állítva, létrehoz egy főkönyv-adatbázist, amelyben az összes felhasználói adat integritása védett. A főkönyv-adatbázisban csak a főkönyvtáblák hozhatók létre. Az alapértelmezett érték a OFF. A beállítás értéke LEDGER nem módosítható az adatbázis létrehozása után. További információ: Főkönyvi adatbázis konfigurálása.
MAXSIZE
Az adatbázis maximális méretét adja meg.
MAXSIZE érvényesnek kell lennie a megadott EDITION (szolgáltatási szint) értékre.
Az alábbiakban a szolgáltatásszintek támogatott MAXSIZE értékeit és alapértelmezett értékeit (D) követjük.
Jegyzet
Az MAXSIZE argumentum nem vonatkozik a rugalmas skálázású szolgáltatási szint egyetlen adatbázisára. Az egyszintű rugalmas skálázású adatbázisok igény szerint növekednek, akár 128 TB-ig is. Az SQL Database szolgáltatás automatikusan hozzáadja a tárterületet – nem kell maximális méretet beállítania.
egy- és készletezett adatbázisok DTU-modellje SQL Database-kiszolgálón
MAXSIZE |
Alapszintű | S0-S2 | S3-S12 | P1-P6 | P11-P15 1 |
|---|---|---|---|---|---|
| 100 MB | Igen | Igen | Igen | Igen | Igen |
| 500 MB | Igen | Igen | Igen | Igen | Igen |
| 1 GB | Igen | Igen | Igen | Igen | Igen |
| 2 GB | Igen (D) | Igen | Igen | Igen | Igen |
| 5 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 10 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 20 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 30 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 40 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 50 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 100 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 150 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 200 GB | Nincs adat. | Igen | Igen | Igen | Igen |
| 250 GB | Nincs adat. | Igen (D) | Igen (D) | Igen | Igen |
| 300 GB | Nincs adat. | Nincs adat. | Igen | Igen | Igen |
| 400 GB | Nincs adat. | Nincs adat. | Igen | Igen | Igen |
| 500 GB | Nincs adat. | Nincs adat. | Igen | Igen (D) | Igen |
| 750 GB | Nincs adat. | Nincs adat. | Igen | Igen | Igen |
| 1024 GB | Nincs adat. | Nincs adat. | Igen | Igen | Igen (D) |
| 1024 GB-tól 4096 GB-ig 256 GB-os lépésekben | Nincs adat. | Nincs adat. | Nincs adat. | Nincs adat. | Igen |
1 P11 és P15 lehetővé teszi MAXSIZE , hogy akár 4 TB 1024 GB az alapértelmezett méret. A P11 és a P15 legfeljebb 4 TB beépített tárterületet használhat fel díjmentesen. A Prémium szinten MAXSIZE jelenleg több mint 1 TB érhető el a következő régiókban: USA 2. keleti régiója, USA nyugati régiója, USA Gov Virginia, Nyugat-Európa, Közép-Németország, Délkelet-Ázsia, Kelet-Japán, Kelet-Ausztrália, Közép-Kanada és Kelet-Kanada. A DTU-modell erőforráskorlátairól további információt a DTU vásárlási modellt használó önálló adatbázisok erőforráskorlátai – Azure SQL Database – című témakörben talál.
Ha MAXSIZE meg van adva, a DTU-modell értékének érvényesnek kell lennie a megadott szolgáltatási szint előző táblájában.
Az olyan korlátokért, mint a maximális adatméret és a virtuálismag-vásárlási modell tempdb mérete, tekintse meg az önálló adatbázisok erőforráskorlátairól szóló cikkeket, vagy rugalmas készletek erőforráskorlátjait.
Ha nincs beállítva MAXSIZE érték a virtuális magmodell használatakor, az alapértelmezett érték 32 GB. A virtuálismag-modell erőforráskorlátairól további információt virtuálismag-erőforráskorlátokról.
KIADÁS
Megadja az adatbázis szolgáltatási szintjét.
Önálló és készletezett adatbázisok. A rendelkezésre álló értékek a következők: "Basic", "Standard", "Premium", "GeneralPurpose", "BusinessCritical" és "Rugalmas skálázás".
Az alábbi szabályok érvényesek és MAXSIZEEDITION argumentumok:
Ha
EDITIONmeg van adva, deMAXSIZEnincs megadva, a kiadás alapértelmezett értékét használja a rendszer. Ha például aEDITIONstandard érték van beállítva, és nincsMAXSIZEmegadva, akkor a MAX'SIZE értéke automatikusan 250 MB lesz.Ha nincs megadva
MAXSIZE,EDITIONakkor aEDITION"GeneralPurpose" értékre van állítva, ésMAXSIZE32 GB-ra van állítva.
SERVICE_OBJECTIVE
Megadja a számítási méretet és a szolgáltatás célját.
DTU-vásárlási modell esetén:
S0,S1,S2,S3,S4,S6,S7,S9,S12,P1,P2,P4,P6,P11,P15A legújabb virtuális mag vásárlási modellhez válassza ki a szintet, és adja meg a virtuális magok számát egy előre beállított értéklistából, ahol a virtuális magok száma
n. Tekintse meg az önálló adatbázisok vagy rugalmas készletek erőforráskorlátait.- Például:
-
GP_Gen5_8általános célú, kiépített számítási, Standard sorozatú (Gen5), 8 virtuális mag. -
GP_S_Gen5_8általános célú, kiszolgáló nélküli számításhoz, Standard sorozatú (Gen5), 8 virtuális maghoz. -
HS_Gen5_8rugalmas skálázáshoz, kiépített számításhoz, Standard sorozathoz (Gen5), 8 virtuális maghoz. -
HS_S_Gen5_8rugalmas skálázáshoz, kiszolgáló nélküli számításhoz, Standard sorozatú (Gen5), 8 virtuális maghoz.
-
- Például:
A szolgáltatás célkitűzésének leírását és a méretekkel, kiadásokkal és a szolgáltatáscélok kombinációival kapcsolatos további információkat az Azure SQL Database szolgáltatásszintjeinek című cikkben talál. Ha a megadott értéket a program SERVICE_OBJECTIVE nem támogatja EDITION, hibaüzenet jelenik meg. Ha az értéket egy SERVICE_OBJECTIVE szintről egy másikra szeretné módosítani (például S1-ről P1-re), az EDITION értéket is módosítania kell. A PRS szolgáltatás célkitűzéseinek támogatása el lett távolítva.
ELASTIC_POOL (név = <elastic_pool_name>)
Csak az önálló és a készletezett adatbázisokra vonatkozik:. Nem vonatkozik a rugalmas skálázású szolgáltatási szinten lévő adatbázisokra.
Ha új adatbázist szeretne létrehozni egy rugalmas adatbáziskészletben, állítsa be az SERVICE_OBJECTIVE adatbázist ELASTIC_POOL , és adja meg a készlet nevét. További információkat lásd: A rugalmas készletek segítenek több adatbázis kezelésében és méretezésében az Azure SQL Database-ben.
[ source_server_name MÁSOLATAKÉNT. ] source_database_name
Csak az önálló és a készletezett adatbázisokra vonatkozik:.
Az AS COPY OF használatával egy adatbázist másolhat ugyanarra vagy egy másik SQL Database-kiszolgálóra.
Ha egy adatbázist egy másik adatbázis másolataként hoz létre AS COPY OF, a beállítások megadása támogatott, és zárójelbe kell burkolni. Például WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.
source_server_name
Annak az SQL Database-kiszolgálónak a neve, ahol a forrásadatbázis található. Ez a paraméter nem kötelező, ha a forrásadatbázis és a céladatbázis ugyanazon az SQL Database-kiszolgálón található.
Jegyzet
Az
AS COPY OFargumentum nem támogatja a teljes mértékben minősített egyedi tartományneveket. Más szóval, ha a kiszolgáló teljes tartományneveserverName.database.windows.net, csakserverNamehasználjon az adatbázis másolása során.source_database_name
A másolandó adatbázis neve.
Megjegyzések
Az Azure SQL Database-adatbázisok számos alapértelmezett beállítással rendelkeznek, amelyek az adatbázis létrehozásakor vannak beállítva. Az alapértelmezett beállításokkal kapcsolatos további információkért tekintse meg az DATABASEPROPERTYEXértékeinek listáját.
MAXSIZE lehetővé teszi az adatbázis méretének korlátozását. Ha az adatbázis mérete eléri a MAXSIZE, a 40544-es hibakód jelenik meg. Ilyen esetben nem szúrhat be vagy frissíthet adatokat, és nem hozhat létre új objektumokat (például táblákat, tárolt eljárásokat, nézeteket és függvényeket). Azonban továbbra is olvashat és törölhet adatokat, csonkíthatja a táblákat, elvetheti a táblákat és indexeket, és újraépítheti az indexeket. Ezután frissítheti a MAXSIZE az aktuális adatbázisméretnél nagyobb értékre, vagy törölhet néhány adatot a tárterület felszabadításához. Akár 15 perces késleltetés is előfordulhat, mielőtt új adatokat szúrhat be.
A méret, a kiadás vagy a szolgáltatás objektív értékeinek későbbi módosításához használja ALTER DATABASE (Azure SQL Database).
Adatbázis-másolatok
Csak az önálló és a készletezett adatbázisokra vonatkozik:.
Az adatbázis CREATE DATABASE utasítással történő másolása aszinkron művelet. Ezért nincs szükség az SQL Database-kiszolgálóval való kapcsolatra a másolási folyamat teljes időtartama alatt. A CREATE DATABASE utasítás a sys.databases bejegyzés létrehozása után, de az adatbázis másolási művelete előtt adja vissza a felhasználónak a vezérlést. Más szóval a CREATE DATABASE utasítás sikeresen visszaadja, ha az adatbázis másolása még folyamatban van.
- A másolási folyamat figyelése SQL Database-kiszolgálón: Kérdezze le a
percentage_completereplication_state_descdm_database_copies vagystateoszlopait vagy asys.databasesnézet oszlopát. A sys.dm_operation_status nézet használható, valamint visszaadja az adatbázis-műveletek állapotát, beleértve az adatbázis-másolást is.
Ha a másolási folyamat sikeresen befejeződött, a céladatbázis tranzakciós szempontból konzisztens lesz a forrásadatbázissal.
A AS COPY OF argumentum használatára az alábbi szintaxis és szemantikai szabályok vonatkoznak:
- Előfordulhat, hogy a forráskiszolgáló neve és a másolási cél kiszolgálóneve azonos vagy eltérő. Ha megegyeznek, ez a paraméter nem kötelező, és alapértelmezés szerint az aktuális munkamenet kiszolgálókörnyezetét használja a rendszer.
- A forrás- és céladatbázis nevét meg kell adni, egyedinek kell lennie, és meg kell felelnie az azonosítók SQL Server-szabályainak. További információ: Adatbázis-azonosítók.
- A
CREATE DATABASEutasítást azon SQL Database-kiszolgálómasteradatbázisának környezetében kell végrehajtani, ahol az új adatbázis létrejön. - A másolás befejezése után a céladatbázist független adatbázisként kell kezelni. A
ALTER DATABASEésDROP DATABASEutasításokat a forrásadatbázistól függetlenül hajthatja végre az új adatbázison. Az új adatbázist másik új adatbázisba is másolhatja. - Előfordulhat, hogy a forrásadatbázis továbbra is elérhető lesz, amíg az adatbázis másolása folyamatban van.
További információ: Adatbázis tranzakciósan konzisztens másolatának másolása az Azure SQL Database-ben.
Fontos
Alapértelmezés szerint az adatbázis-másolat a forrásadatbáziséval megegyező biztonsági mentési tárredundanciával jön létre.
Engedélyek
Adatbázis létrehozásához a bejelentkezésnek a következő tagok egyikének kell lennie:
- A kiszolgálószintű egyszerű bejelentkezés
- Az Azure logikai kiszolgálójának Microsoft Entra-rendszergazdája
- A
dbmanageradatbázis-szerepkör tagjaként megadott bejelentkezés
CREATE DATABASE ... AS COPY OF szintaxis használatának további követelményei: A helyi kiszolgálón az utasítást végrehajtó bejelentkezésnek is legalább a forráskiszolgáló db_owner kell lennie. Ha a bejelentkezés SQL Server-hitelesítésen alapul, a helyi kiszolgálón az utasítást végrehajtó bejelentkezésnek egyező bejelentkezéssel kell rendelkeznie a forrás SQL Database-kiszolgálón, azonos névvel és jelszóval.
Példák
Egyszerű példa
Egy egyszerű példa egy adatbázis létrehozására.
CREATE DATABASE TestDB1;
Egyszerű példa kiadással
Alapszintű példa egy általános célú adatbázis létrehozására.
CREATE DATABASE TestDB2
(EDITION = 'GeneralPurpose');
Példa további beállításokkal
Több lehetőséget használó példa.
CREATE DATABASE hito
COLLATE Japanese_Bushu_Kakusu_100_CS_AS_KS_WS
( MAXSIZE = 500 MB, EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8' ) ;
Adatbázis-másolat létrehozása
Példa egy adatbázis másolatának létrehozására.
Csak az önálló és a készletezett adatbázisokra vonatkozik:.
CREATE DATABASE escuela
AS COPY OF school;
Adatbázis létrehozása rugalmas készletben
Új adatbázist hoz létre az S3M100 nevű készletben:
Csak az önálló és a készletezett adatbázisokra vonatkozik:.
CREATE DATABASE db1
(SERVICE_OBJECTIVE = ELASTIC_POOL (NAME = S3M100));
Adatbázis másolatának létrehozása egy másik logikai kiszolgálón
Az alábbi példa egy db_original nevű db_copy-adatbázis másolatát hozza létre egyetlen adatbázis általános célú szolgáltatási célkitűzésében. Ez attól függetlenül igaz, hogy a db_original rugalmas készletben vagy számítási méretben (szolgáltatási célkitűzés) található-e egyetlen adatbázishoz.
Csak az önálló és a készletezett adatbázisokra vonatkozik:.
CREATE DATABASE db_copy
AS COPY OF <database>.db_original
(EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8');
Az alábbi példa egy db_original adatbázis egy db_copy nevű példányát hozza létre egy ep1nevű rugalmas készletben. Ez attól függetlenül igaz, hogy a db_original rugalmas készletben vagy számítási méretben (szolgáltatási célkitűzés) található-e egyetlen adatbázishoz. Ha db_original egy másik nevű rugalmas készletben van, akkor db_copy továbbra is létrejön ep1.
Csak az önálló és a készletezett adatbázisokra vonatkozik:.
CREATE DATABASE db_copy
AS COPY OF <database>.db_original
(SERVICE_OBJECTIVE = ELASTIC_POOL (NAME = ep1));
Adatbázis létrehozása a katalógus megadott rendezési értékével
Az alábbi példa a katalógus rendezést DATABASE_DEFAULT az adatbázis létrehozása során állítja be, amely úgy állítja be a katalógus rendezését, hogy megegyezik az adatbázis-rendezéssel.
CREATE DATABASE TestDB3 COLLATE Japanese_XJIS_140 (MAXSIZE = 100 MB, EDITION = 'Basic')
WITH CATALOG_COLLATION = DATABASE_DEFAULT;
Adatbázis létrehozása zónaredundanciával biztonsági mentésekhez
Az alábbi példa zónaredundanciát állít be az adatbázis-biztonsági mentésekhez. Az időponthoz kötött visszaállítási biztonsági mentések és a hosszú távú adatmegőrzési biztonsági mentések (ha konfigurálva van) ugyanazt a biztonsági mentési tár redundanciát használják.
CREATE DATABASE test_zone_redundancy
WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';
Főkönyv-adatbázis létrehozása
CREATE DATABASE MyLedgerDB (EDITION = 'GeneralPurpose')
WITH LEDGER = ON;
Adatbázis másolása a beállítások módosítása közben
Az alábbi példa különböző beállításokat állít be az adatbázis új példányához, beleértve egy másik szolgáltatási szintet és a biztonsági mentési tár redundanciabeállításait. Alapértelmezés szerint az adatbázis-másolat ugyanazokkal a beállításokkal jön létre, mint a forrásadatbázis.
CREATE DATABASE copy_testdb
AS COPY OF [test_db]
(EDITION = 'GeneralPurpose', SERVICE_OBJECTIVE = 'GP_Gen5_8')
WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');
Kapcsolódó tartalom
* felügyelt SQL-példány *
Azure SQL Managed Instance
Áttekintés
A felügyelt Azure SQL-példányban ez az utasítás egy adatbázis létrehozásához használható. Ha felügyelt példányon hoz létre adatbázist, meg kell adnia az adatbázis nevét és rendezési módját.
Szintaxis
A szintaxisi konvenciókról további információt Transact-SQL szintaxiskonvenciákat.
CREATE DATABASE database_name [ COLLATE collation_name ]
[ WITH <with_options> [ , ..n ] ]
[ ; ]
<with_options> ::=
{
LEDGER = { ON | OFF }
}
Fontos
Ha egy felügyelt példányban lévő adatbázis fájljait vagy elszigetelését szeretné beállítani, használja az ALTER DATABASE utasítást.
Felügyelt SQL-példányok esetén a kezdeti MAXSIZE érték implicit módon az aktuális lemezméretre van állítva, és nem változik automatikusan, ha a lemezméretet az Azure Portalról bővíti. A lemez kiterjesztése után az MAXSIZE is ki kell terjesztenie, hogy elkerülje az adatbázisfájl teljes hibáit.
Érvek
database_name
Az új adatbázis neve. Ennek a névnek egyedinek kell lennie az SQL Serveren, és meg kell felelnie az azonosítókRA vonatkozó SQL Server-szabályoknak. További információ: Adatbázis-azonosítók.
collation_name
Az adatbázis alapértelmezett rendezési értékét adja meg. A rendezés neve lehet Windows-rendezési név vagy SQL-rendezés neve. Ha nincs megadva, a rendszer az adatbázishoz rendeli hozzá az alapértelmezett rendezést, amely a következő SQL_Latin1_General_CP1_CI_AS: .
A Windows és az SQL-rendezés nevével kapcsolatos további információkért tekintse meg a COLLATE parancsot.
LEDGER = { ON | KI }
Ha ONértékre van állítva, létrehoz egy főkönyv-adatbázist, amelyben az összes felhasználói adat integritása védett. A főkönyv-adatbázisban csak a főkönyvtáblák hozhatók létre. Az alapértelmezett érték a OFF. A beállítás értéke LEDGER nem módosítható az adatbázis létrehozása után. További információ: Főkönyvi adatbázis konfigurálása.
Megjegyzések
Az Azure SQL Database-adatbázisok számos alapértelmezett beállítással rendelkeznek, amelyek az adatbázis létrehozásakor vannak beállítva. Az alapértelmezett beállításokkal kapcsolatos további információkért tekintse meg az DATABASEPROPERTYEXértékeinek listáját.
Fontos
A CREATE DATABASE utasításnak kell lennie az egyetlen utasításnak egy Transact-SQL kötegben.
A következők CREATE DATABASE korlátozások:
A fájlok és fájlcsoportok nem határozhatók meg.
WITHbeállítások nem támogatottak, kivéve aWITH LEDGER.Borravaló
Kerülő megoldásként használja ALTER DATABASE.
CREATE DATABASEután adja meg az adatbázis beállításait és adja hozzá a fájlokat.
Engedélyek
Adatbázis létrehozásához a bejelentkezésnek a következő rendszerbiztonsági tagok egyikének kell lennie:
- A kiszolgálószintű egyszerű bejelentkezés
- Az Azure logikai kiszolgálójának Microsoft Entra-rendszergazdája
- A dbcreator-adatbázis szerepkör tagjaként megadott bejelentkezés
Példák
Egyszerű példa
Egy egyszerű példa egy adatbázis létrehozására.
CREATE DATABASE TestDB1;
Főkönyv-adatbázis létrehozása
CREATE DATABASE MyLedgerDB
WITH LEDGER = ON;
Kapcsolódó tartalom
* Azure Synapse
Elemzés *
Azure Synapse Analytics
Áttekintés
Az Azure Synapse-ban ez az utasítás egy Azure SQL Database-kiszolgálóval használható dedikált SQL-készlet létrehozásához. Ezzel az utasítással megadhatja az adatbázis nevét, rendezési módját, maximális méretét, kiadását és szolgáltatáscélját.
-
CREATE DATABASEa Gen2 szolgáltatásszinteket használó különálló dedikált SQL-készletek (korábbi nevén SQL DW) esetében támogatott. -
CREATE DATABASEAz Azure Synapse Analytics-munkaterület dedikált SQL-készletei nem támogatottak. Ehelyett az Azure Portal. -
CREATE DATABASEaz Azure Synapse Analytics kiszolgáló nélküli SQL-készletei esetében támogatott.
Szintaxis
A szintaxisi konvenciókról további információt Transact-SQL szintaxiskonvenciákat.
- dedikált SQL-készlet
- kiszolgáló nélküli SQL-készlet
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'
}
)
[ ; ]
Érvek
database_name
Az új adatbázis neve. Ennek a névnek egyedinek kell lennie az SQL Serveren, amely mindkét adatbázist üzemeltetheti az Azure SQL Database-ben és az Azure Synapse Analytics-adatbázisokban, és meg kell felelnie az azonosítókRA vonatkozó SQL Server-szabályoknak. További információ: Adatbázis-azonosítók.
collation_name
Az adatbázis alapértelmezett rendezési értékét adja meg. A rendezés neve lehet Windows-rendezési név vagy SQL-rendezés neve. Ha nincs megadva, a rendszer az adatbázishoz rendeli hozzá az alapértelmezett rendezést, amely a következő SQL_Latin1_General_CP1_CI_AS: .
A Windows és az SQL-rendezés nevével kapcsolatos további információkért lásd a COLLATE című témakört.
MAXSIZE
Az alapértelmezett érték 245 760 GB (240 TB).
A következőkre vonatkozik: Compute Gen1-hez optimalizálva
Az adatbázis megengedett maximális mérete. Az adatbázis nem nőhet tovább MAXSIZE.
A következőkre vonatkozik: Compute Gen2-hez optimalizálva
A rowstore-adatok maximális megengedett mérete az adatbázisban. A sorkatasztertáblákban, az oszlopcentrikus indexek deltastore-jában vagy a fürtözött oszlopcentrikus indexek nemclustered indexében tárolt adatok nem növekedhetnek tovább MAXSIZE. Az oszlopcentrikus formátumba tömörített adatok nem rendelkeznek méretkorláttal, és nem korlátozzák őket MAXSIZE.
KIADÁS
Megadja az adatbázis szolgáltatási szintjét. Az Azure Synapse Analyticshez használja a datawarehouse.
SERVICE_OBJECTIVE
Megadja a számítási méretet (szolgáltatási célkitűzés). A Gen2 szolgáltatási szintjei számítási adattárház egységekben (cDWU) vannak mérve, például DW2000c. A Gen1 szolgáltatásszinteket dWU-kban mérik, például DW2000. Az Azure Synapse szolgáltatáscéljaival kapcsolatos további információkért lásd adattárházegységek (DWU-k). A Gen1 szolgáltatás célkitűzései (már nem szerepelnek a listában) már nem támogatottak, hibaüzenet jelenhet meg: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.
Megjegyzések
Az adatbázis tulajdonságainak megtekintéséhez használja DATABASEPROPERTYEX.
Az ALTER DATABASE – Azure Synapse Analytics használatával később módosíthatja a maximális méretet vagy a szolgáltatás objektív értékeit.
Az Azure Synapse be van állítva, COMPATIBILITY_LEVEL 130 és nem módosítható. További információ: ALTER DATABASE kompatibilitási szint.
Engedélyek
Szükséges engedélyek:
- Kiszolgálószintű egyszerű bejelentkezés, amelyet a kiépítési folyamat hoz létre, vagy
- A dbmanager-adatbázis szerepkör tagja.
Hibakezelés
Ha az adatbázis mérete eléri MAXSIZE, az SQL Server a 40544-es hibakódot eredményezi. Ilyen esetben nem szúrhat be és frissíthet adatokat, és nem hozhat létre új objektumokat (például táblákat, tárolt eljárásokat, nézeteket és függvényeket). Továbbra is olvashat és törölhet adatokat, csonkíthatja a táblákat, elvetheti a táblákat és indexeket, és újraépítheti az indexeket. Ezután frissítheti a MAXSIZE az aktuális adatbázisméretnél nagyobb értékre, vagy törölhet néhány adatot a tárterület felszabadításához. Az új adatok beszúrása akár tizenöt perces késéssel is járhat.
Korlátozások
Új adatbázis létrehozásához csatlakoznia kell a master adatbázishoz.
A CREATE DATABASE utasításnak kell lennie az egyetlen utasításnak egy Transact-SQL kötegben.
Az adatbázis-rendezés az adatbázis létrehozása után nem módosítható.
Példák: Azure Synapse Analytics
Egy. Egyszerű példa
Egy egyszerű példa önálló dedikált SQL-készlet (korábbi nevén SQL DW) létrehozására. Ez létrehozza az adatbázist a legkisebb maximális mérettel (10 240 GB), az alapértelmezett rendezéssel (SQL_Latin1_General_CP1_CI_AS) és a legkisebb Gen2 szolgáltatás célkitűzéssel (DW100c).
CREATE DATABASE TestDW
(EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW100c');
B. Adattárház-adatbázis létrehozása az összes lehetőséggel
Példa egy 10 terabájtos különálló dedikált SQL-készlet (korábbi nevén SQL DW) létrehozására.
CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS
(MAXSIZE = 10240 GB, EDITION = 'datawarehouse', SERVICE_OBJECTIVE = 'DW1000c');
C. Egyszerű példa a Synapse Analytics kiszolgáló nélküli SQL-készletében
Ez létrehozza az adatbázist a kiszolgáló nélküli készletben, és megad egy rendezést (Latin1_General_100_CI_AS_KS_WS).
CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS;
Kapcsolódó tartalom
* Elemzési platform
Rendszer (PDW) *
Elemzési platformrendszer
Áttekintés
Az Analytics Platform Systemben ez az utasítás egy új adatbázis létrehozására szolgál egy Analytics Platform System-berendezésen. Ezzel az utasítással létrehozhatja a berendezés-adatbázishoz társított összes fájlt, és beállíthatja az adatbázistáblák és a tranzakciónapló maximális méretét és automatikus növekedési lehetőségeit.
Szintaxis
A szintaxisi konvenciókról további információt Transact-SQL szintaxiskonvenciákat.
CREATE DATABASE database_name
WITH (
[ AUTOGROW = ON | OFF , ]
REPLICATED_SIZE = replicated_size [ GB ] ,
DISTRIBUTED_SIZE = distributed_size [ GB ] ,
LOG_SIZE = log_size [ GB ] )
[ ; ]
Érvek
database_name
Az új adatbázis neve. Az engedélyezett adatbázisnevekről további információt az Analytics Platform System (PDW) termékdokumentációjábanaz "Objektumelnevezési szabályok" és a "Fenntartott adatbázisnevek" című témakörben talál.
AUTOGROW = { ON | KI }
Megadja, hogy a replicated_size, distributed_size és log_size paraméterek szükség szerint automatikusan növekedjenek-e a megadott méretükön túlra. Az alapértelmezett érték a OFF.
Ha AUTOGROW igen ON, akkor a replicated_size, a distributed_size és a log_size igény szerint növekszik minden olyan adatbeszúrással, frissítéssel vagy más művelettel, amely a már lefoglaltnál több tárterületet igényel.
Ha AUTOGROW igen OFF, a méretek nem nőnek automatikusan. Az Analytics Platform System (PDW) hibát ad vissza, ha olyan műveletet kísérel meg, amely megköveteli, hogy replicated_size, distributed_size vagy log_size növekedjen a megadott értéken.
AUTOGROW
ON vagy minden méretre vagy OFF minden méretre. Például nem állítható be AUTOGROW ONlog_size, de nem állítható be replicated_size.
replicated_size [ GB ]
Pozitív szám. Beállítja a replikált táblákhoz lefoglalt teljes terület méretét (egész számban vagy decimális gigabájtban), valamint az egyes számítási csomópontokon kapcsolódó adatokat. A minimális és maximális replicated_size követelményekről a Analytics Platform System (PDW) termékdokumentációjábana "Minimum és maximális értékek" című témakörben olvashat.
Ha AUTOGROW igen, akkor a ONreplikált táblák túlléphetik ezt a korlátot.
Ha AUTOGROW igen OFF, akkor a rendszer hibát ad vissza, ha egy felhasználó új replikált táblát próbál létrehozni, adatokat szúr be egy meglévő replikált táblába, vagy egy meglévő replikált táblát úgy frissít, hogy az a replicated_size meghaladó méretre növelné a méretet.
distributed_size [ HU ]
Pozitív szám. Az elosztott tábláknak (és a kapcsolódó adatoknak) lefoglalt teljes terület mérete egész számban vagy tizedesjegyben a berendezés. A minimális és maximális distributed_size követelményekről a Analytics Platform System (PDW) termékdokumentációjábana "Minimum és maximális értékek" című témakörben olvashat.
Ha AUTOGROW igen ON, az elosztott táblák száma túllépheti ezt a korlátot.
Ha AUTOGROW igen OFF, akkor a rendszer hibát ad vissza, ha egy felhasználó új elosztott táblát próbál létrehozni, adatokat szúr be egy meglévő elosztott táblába, vagy egy meglévő elosztott táblát úgy frissít, hogy az a distributed_size meghaladó méretre növelné a méretet.
log_size [ GB ]
Pozitív szám. A tranzakciónapló mérete (egész számban vagy decimális gigabájtban) a berendezés.
A minimális és maximális log_size követelményekről a Analytics Platform System (PDW) termékdokumentációjában"Minimális és maximális értékek" című témakörben olvashat.
Ha AUTOGROW igen ON, a naplófájl mérete túlléphető ezen a korláton. A DBCC SHRINKLOG – Analytics Platform System (PDW) utasítással csökkentheti a naplófájlok méretét az eredeti méretre.
Ha AUTOGROW igen OFF, a rendszer hibát ad vissza a felhasználónak minden olyan műveletnél, amely növeli az egyes számítási csomópontok naplóméretét log_size.
Engedélyek
A CREATE ANY DATABASE adatbázis master engedélyére vagy a sysadmin rögzített kiszolgálói szerepkör tagságára van szükség.
Az alábbi példa engedélyt ad arra, hogy adatbázist hozzon létre Fay adatbázis-felhasználónak.
USE master;
GO
GRANT CREATE ANY DATABASE TO [Fay];
GO
Megjegyzések
Az adatbázisok a 120-es adatbázis-kompatibilitási szinttel jönnek létre, amely az SQL Server 2014 (12.x) kompatibilitási szintje. Ez biztosítja, hogy az adatbázis az SQL Server 2014 (12.x) összes funkcióját használni tudja, amelyet a PDW használ.
Korlátozások
Az CREATE DATABASE utasítás nem engedélyezett explicit tranzakcióban. További információ: Transact-SQL utasítások.
Az adatbázisok minimális és maximális korlátozásáról a Analytics Platform System (PDW) termékdokumentációjában"Minimális és maximális értékek" című témakörben talál információt.
Az adatbázis létrehozásakor elegendő szabad helynek kell lennie az egyes számítási csomópontokon az alábbi méretek összesített összegének lefoglalásához:
- SQL Server-adatbázis replicated_table_sizeméretű táblákkal.
- SQL Server-adatbázis a (distributed_table_size/számítási csomópontok száma) méretű táblákkal.
- Az SQL Server naplózza a számítási csomópontok méretét (log_size/ számát).
Zár
Megosztott zárolást hoz létre az DATABASE objektumon.
Metaadatok
A művelet sikeres végrehajtása után az adatbázis bejegyzése megjelenik a sys.databases és a sys.objects metaadat-nézetekben.
Példák: Elemzési platformrendszer (PDW)
Egy. Egyszerű adatbázis-létrehozási példák
Az alábbi példa létrehoz egy adatbázis-mytest, amely számítási csomópontonként 100 GB tárterületet biztosít replikált táblákhoz, berendezésenként 500 GB elosztott táblákhoz, és 100 GB-ot a tranzakciónaplóhoz. Ebben a példában AUTOGROW alapértelmezés szerint ki van kapcsolva.
CREATE DATABASE mytest
WITH
(REPLICATED_SIZE = 100 GB,
DISTRIBUTED_SIZE = 500 GB,
LOG_SIZE = 100 GB );
Az alábbi példa ugyanazokkal a paraméterekkel hozza létre az adatbázist mytest , kivéve, hogy be AUTOGROW van kapcsolva. Ez lehetővé teszi, hogy az adatbázis a megadott méretparamétereken kívül növekedjen.
CREATE DATABASE mytest
WITH
(AUTOGROW = ON,
REPLICATED_SIZE = 100 GB,
DISTRIBUTED_SIZE = 500 GB,
LOG_SIZE = 100 GB);
B. Adatbázis létrehozása részleges gigabájtméretekkel
Az alábbi példa létrehozza az adatbázist mytestkikapcsolva AUTOGROW , számítási csomópontonként 1,5 GB tárterület-lefoglalást replikált táblákhoz, 5,25 GB-ot berendezésenként elosztott táblákhoz, és 10 GB-ot berendezésenként a tranzakciónaplóhoz.
CREATE DATABASE mytest
WITH
(REPLICATED_SIZE = 1.5 GB,
DISTRIBUTED_SIZE = 5.25 GB,
LOG_SIZE = 10 GB);