Udostępnij za pośrednictwem


TWORZENIE BAZY DANYCH

Tworzy nową bazę danych.

Wybierz jedną z poniższych kart składni, argumentów, uwag, uprawnień i przykładów dla określonej wersji sql, z którą pracujesz.

Wybieranie produktu

W poniższym wierszu wybierz nazwę produktu, którą cię interesuje, i zostanie wyświetlona tylko informacja o tym produkcie.

* SQL Server *  

usługi SQL Database

usługi SQL Managed Instance

 

SQL Server

Przegląd

W programie SQL Server ta instrukcja tworzy nową bazę danych i używane pliki oraz ich grupy plików. Może również służyć do tworzenia migawki bazy danych lub dołączania plików bazy danych w celu utworzenia bazy danych z odłączonych plików innej bazy danych.

Składnia

Utwórz bazę danych.

Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.

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

Dołączanie bazy danych

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
}

Tworzenie migawki bazy danych

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

Argumenty

database_name

Jest to nazwa nowej bazy danych. Nazwy baz danych muszą być unikatowe w wystąpieniu programu SQL Server i być zgodne z regułami dotyczącymi identyfikatorów .

database_name może zawierać maksymalnie 128 znaków, chyba że nie określono nazwy logicznej dla pliku dziennika. Jeśli nie określono nazwy pliku dziennika logicznego, program SQL Server generuje logical_file_name i os_file_name dla dziennika, dołączając sufiks do database_name. Ogranicza to database_name do 123 znaków, tak aby wygenerowana nazwa pliku logicznego nie przekraczała 128 znaków.

Jeśli nie określono nazwy pliku danych, program SQL Server używa database_name zarówno jako logical_file_name, jak i jako os_file_name. Ścieżka domyślna jest uzyskiwana z rejestru. Ścieżkę domyślną można zmienić w w programie Management Studio właściwości serwera (strona ustawień bazy danych). Zmiana ścieżki domyślnej wymaga ponownego uruchomienia programu SQL Server.

ZAWIERANIE = { NONE | CZĘŚCIOWE }

Dotyczy: SQL Server 2012 (11.x) i nowszych

Określa stan zawierania bazy danych. NONE = nieuwzwiązana baza danych. PARTIAL = częściowo zawarta baza danych.

NA

Określa, że pliki dysku używane do przechowywania sekcji danych bazy danych, plików danych są jawnie zdefiniowane. Wł. jest wymagany, gdy następuje rozdzielana przecinkami lista <plikówpec> elementów definiujących pliki danych dla podstawowej grupy plików. Lista plików w podstawowej grupie plików może zawierać opcjonalną, rozdzielaną przecinkami listę elementów <filegroup> definiujących grupy plików użytkowników i ich plików.

PODSTAWOWY

Określa, że skojarzona lista plików <> definiuje plik podstawowy. Pierwszy plik określony w <plikpec> wpis w podstawowej grupie plików staje się plikiem podstawowym. Baza danych może mieć tylko jeden plik podstawowy. Aby uzyskać więcej informacji, zobacz Database Files and Filegroups.

Jeśli nie określono parametru PRIMARY, pierwszy plik wymieniony w instrukcji CREATE DATABASE staje się plikiem podstawowym.

LOGOWANIE

Określa, że pliki dysku używane do przechowywania dziennika bazy danych, plików dziennika są jawnie zdefiniowane. Po logowaniu następuje rozdzielona przecinkami lista <plikówpec> elementów definiujących pliki dziennika. Jeśli logowanie nie zostanie określone, zostanie automatycznie utworzony jeden plik dziennika, który ma rozmiar 25 procent sumy wszystkich plików danych dla bazy danych lub 512 KB, w zależności od tego, która z nich jest większa. Ten plik jest umieszczany w domyślnej lokalizacji pliku dziennika. Aby uzyskać informacje o tej lokalizacji, zobacz View or Change the Default Locations for Data and Log Files in SSMS(Zmienianie domyślnych lokalizacji plików danych i dzienników w programie SSMS).

Nie można określić logowania w migawki bazy danych.

SORTOWANIE collation_name

Określa sortowanie domyślne dla bazy danych. Nazwa sortowania może być nazwą sortowania systemu Windows lub nazwą sortowania SQL. Jeśli nie zostanie określona, baza danych zostanie przypisana do domyślnego sortowania wystąpienia programu SQL Server. Nie można określić nazwy sortowania w migawki bazy danych.

Nie można określić nazwy sortowania z klauzulami FOR ATTACH lub FOR ATTACH_REBUILD_LOG. Aby uzyskać informacje na temat zmiany sortowania dołączonej bazy danych, odwiedź tę witrynę witrynę sieci Web firmy Microsoft.

Aby uzyskać więcej informacji na temat nazw sortowania systemu Windows i SQL, zobacz COLLATE.

Nuta

Zawarte bazy danych są sortowane inaczej niż nieuwzwiązane bazy danych. Aby uzyskać więcej informacji, zobacz zawarte sortowania baz danych.

Z opcją <>

<filestream_option>

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | PEŁNY }

Dotyczy: SQL Server 2012 (11.x) i nowsze.

Określa poziom nie transakcyjnego dostępu FILESTREAM do bazy danych.

Wartość Opis
OFF Dostęp nie transakcyjny jest wyłączony.
READONLY Dane FILESTREAM w tej bazie danych mogą być odczytywane przez procesy nie transakcyjne.
FULL Pełny nie transakcyjny dostęp do plików FILESTREAM FileTables jest włączony.

DIRECTORY_NAME = <directory_name>

Dotyczy: SQL Server 2012 (11.x) i nowszych

Nazwa katalogu zgodnego z systemem Windows. Ta nazwa powinna być unikatowa wśród wszystkich nazw Database_Directory w wystąpieniu programu SQL Server. Porównanie unikatowości jest niewrażliwe na wielkość liter, niezależnie od ustawień sortowania programu SQL Server. Ta opcja powinna zostać ustawiona przed utworzeniem tabeli FileTable w tej bazie danych.



Poniższe opcje są dozwolone tylko wtedy, gdy właściwość CONTAINMENT została ustawiona na WARTOŚĆ PARTIAL. Jeśli właściwość CONTAINMENT jest ustawiona na NONE, wystąpią błędy.

DEFAULT_FULLTEXT_LANGUAGE = <> lcid | <nazwa języka> | alias języka <>

Dotyczy: SQL Server 2012 (11.x) i nowszych

Zobacz Konfigurowanie domyślnej opcji konfiguracji serwera pełnotekstowego, aby uzyskać pełny opis tej opcji.

DEFAULT_LANGUAGE = <> lcid | <nazwa języka> | alias języka <>

Dotyczy: SQL Server 2012 (11.x) i nowszych

Zobacz Skonfiguruj domyślną opcję konfiguracji serwera języka, aby uzyskać pełny opis tej opcji.

NESTED_TRIGGERS = { OFF | WŁ. }

Dotyczy: SQL Server 2012 (11.x) i nowszych

Zobacz Konfigurowanie zagnieżdżonych wyzwalaczy Opcji konfiguracji serwera, aby uzyskać pełny opis tej opcji.

TRANSFORM_NOISE_WORDS = { OFF | WŁ. }

Dotyczy: SQL Server 2012 (11.x) i nowszych

Aby uzyskać pełny opis tej opcji, zobacz przekształć wyrazy szumu. Opcja konfiguracji serwera.

TWO_DIGIT_YEAR_CUTOFF = { 2049 | <w każdym roku między 1753 a 9999> }

Cztery cyfry reprezentujące rok. Wartość domyślna to 2049. Aby uzyskać pełny opis tej opcji, zobacz Configure the two digit year cutoff Server Configuration Option (Konfigurowanie opcji konfiguracji serwera dwucyfrowego w roku).

DB_CHAINING { OFF | WŁ. }

Po określeniu pozycji WŁĄCZONE baza danych może być źródłem lub elementem docelowym łańcucha własności między bazami danych.

W przypadku wyłączenia baza danych nie może uczestniczyć w łańcuchu własności między bazami danych. Wartość domyślna to WYŁĄCZONE.

Ważny

Wystąpienie programu SQL Server rozpozna to ustawienie, gdy opcja serwera łańcucha własności między bazami danych ma wartość 0 (OFF). Gdy łańcuch własności między bazami danych wynosi 1 (WŁ.), wszystkie bazy danych użytkowników mogą uczestniczyć w łańcuchach własności między bazami danych, niezależnie od wartości tej opcji. Ta opcja jest ustawiana przy użyciu sp_configure.

Aby ustawić tę opcję, wymaga członkostwa w stałej roli serwera sysadmin. Nie można ustawić opcji DB_CHAINING dla następujących systemowych baz danych: master, model, tempdb.

GODNE ZAUFANIA { WYŁĄCZONE | WŁ. }

Po określeniu pozycji WŁĄCZONE moduły bazy danych (na przykład widoki, funkcje zdefiniowane przez użytkownika lub procedury składowane), które używają kontekstu personifikacji, mogą uzyskiwać dostęp do zasobów spoza bazy danych.

W przypadku wyłączenia moduły bazy danych w kontekście personifikacji nie mogą uzyskać dostępu do zasobów spoza bazy danych. Wartość domyślna to WYŁĄCZONE.

WARTOŚĆ TRUSTWORTHY jest ustawiona na WARTOŚĆ OFF za każdym razem, gdy baza danych jest dołączona.

Domyślnie wszystkie systemowe bazy danych z wyjątkiem bazy danych msdb mają wartość TRUSTWORTHY ustawioną na WARTOŚĆ OFF. Nie można zmienić wartości dla baz danych model i tempdb. Zalecamy, aby dla bazy danych master nigdy nie ustawić opcji GODNE ZAUFANIA.

PERSISTENT_LOG_BUFFER=ON ( DIRECTORY_NAME='' )

Dotyczy: SQL Server 2017 (14.x) i nowszych.

Po określeniu tej opcji bufor dziennika transakcji jest tworzony na woluminie, który znajduje się na urządzeniu dyskowym wspieranym przez pamięć klasy magazynu (NVDIMM-N magazynu nieulotnego), znany również jako trwały bufor dziennika. Aby uzyskać więcej informacji, zobacz przyspieszanie opóźnienia zatwierdzania transakcji przy użyciu pamięci klasy magazynu i Dodawanie buforu dziennika trwałego do bazy danych.

LEDGER = {ON | WYŁ. }

Po ustawieniu wartości na ONprogram tworzy bazę danych rejestru, w której jest chroniona integralność wszystkich danych użytkownika. W bazie danych rejestru można tworzyć tylko tabele rejestru. Wartość domyślna to OFF. Nie można zmienić wartości opcji LEDGER po utworzeniu bazy danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie bazy danych rejestru.

UTWÓRZ BAZĘ DANYCH... DO DOŁĄCZANIA [ Z < attach_database_option > ]

Określa, że baza danych jest tworzona przez dołączanie istniejącego zestawu plików systemu operacyjnego. Musi istnieć <plikpec> wpis określający plik podstawowy. Jedynymi innymi wpisami <filespec> są wymagane dla wszystkich plików, które mają inną ścieżkę od momentu utworzenia bazy danych lub ostatniego dołączeniu. Dla tych plików należy określić wpis <filespec>.

W przypadku dołączania wymagane są następujące elementy:

  • Wszystkie pliki danych (MDF i NDF) muszą być dostępne.
  • Jeśli istnieje wiele plików dziennika, muszą być dostępne.

Jeśli baza danych odczytu/zapisu ma jeden plik dziennika, który jest obecnie niedostępny, a baza danych została zamknięta bez użytkowników lub otwartych transakcji przed operacją ATTACH, FOR ATTACH automatycznie ponownie kompiluje plik dziennika i aktualizuje plik podstawowy. Z kolei w przypadku bazy danych tylko do odczytu nie można ponownie skompilować dziennika, ponieważ nie można zaktualizować pliku podstawowego. W związku z tym w przypadku dołączania bazy danych tylko do odczytu z dziennikiem, który jest niedostępny, należy podać pliki dziennika lub pliki w klauzuli FOR ATTACH.

Nuta

Nie można dołączyć bazy danych utworzonej przez najnowszą wersję programu SQL Server we wcześniejszych wersjach.

W programie SQL Server wszystkie pliki pełnotekstowe, które są częścią dołączonej bazy danych, zostaną dołączone do bazy danych. Aby określić nową ścieżkę wykazu pełnotekstowego, określ nową lokalizację bez pełnej nazwy pliku systemu operacyjnego. Aby uzyskać więcej informacji, zobacz sekcję Przykłady.

Dołączenie bazy danych zawierającej opcję FILESTREAM "Nazwa katalogu" do wystąpienia programu SQL Server spowoduje wyświetlenie monitu programu SQL Server o sprawdzenie, czy nazwa Database_Directory jest unikatowa. Jeśli tak nie jest, operacja ATTACH kończy się niepowodzeniem z powodu błędu, FILESTREAM Database_Directory name is not unique in this SQL Server instance. Aby uniknąć tego błędu, opcjonalny parametr directory_namenależy przekazać do tej operacji.

Nie można określić funkcji ATTACH dla migawki bazy danych.

W polu ATTACH można określić opcję RESTRICTED_USER. RESTRICTED_USER umożliwia nawiązywanie połączenia z bazą danych tylko członkom db_owner stałej roli bazy danych oraz stałych ról serwera dbcreator i sysadmin, ale nie ogranicza ich liczby. Próby niekwalifikowanych użytkowników są odrzucane.

<service_broker_option>

Jeśli baza danych używa usługi Service Broker, użyj <service_broker_option> WITH w klauzuli FOR ATTACH:

Steruje dostarczaniem komunikatów usługi Service Broker i identyfikatorem usługi Service Broker dla bazy danych. Opcje usługi Service Broker można określić tylko wtedy, gdy jest używana klauzula FOR ATTACH.

ENABLE_BROKER

Określa, że usługa Service Broker jest włączona dla określonej bazy danych. Oznacza to, że dostarczanie komunikatów jest uruchamiane, a is_broker_enabled jest ustawiona na wartość true w widoku wykazu sys.databases. Baza danych zachowuje istniejący identyfikator usługi Service Broker.

NEW_BROKER

Tworzy nową wartość service_broker_guid zarówno w sys.databases, jak i w przywróconej bazie danych. Kończy wszystkie punkty końcowe konwersacji z czyszczeniem. Broker jest włączony, ale żaden komunikat nie jest wysyłany do zdalnych punktów końcowych konwersacji. Każda trasa odwołująca się do starego identyfikatora usługi Service Broker musi zostać ponownie utworzona przy użyciu nowego identyfikatora.

ERROR_BROKER_CONVERSATIONS

Kończy wszystkie konwersacje z błędem informującym, że baza danych jest dołączona lub przywrócona. Broker jest wyłączony do momentu ukończenia tej operacji, a następnie włączonej. Baza danych zachowuje istniejący identyfikator usługi Service Broker.

Podczas dołączania replikowanej bazy danych, która została skopiowana zamiast odłączania, rozważ następujące kwestie:

  • Jeśli dołączysz bazę danych do tego samego wystąpienia serwera i wersji co oryginalna baza danych, nie są wymagane żadne dodatkowe kroki.
  • Jeśli dołączysz bazę danych do tego samego wystąpienia serwera, ale z uaktualnioną wersją, musisz wykonać sp_vupgrade_replication, aby uaktualnić replikację po zakończeniu operacji dołączania.
  • Jeśli baza danych zostanie dołączona do innego wystąpienia serwera, niezależnie od wersji, należy wykonać sp_removedbreplication, aby usunąć replikację po zakończeniu operacji dołączania.

Nuta

Dołączanie działa z formatem magazynu vardecimal, ale aparat bazy danych programu SQL Server musi zostać uaktualniony do co najmniej programu SQL Server 2005 (9.x) z dodatkiem SP2. Nie można dołączyć bazy danych przy użyciu formatu magazynu vardecimal do starszej wersji programu SQL Server. Aby uzyskać więcej informacji na temat formatu magazynu vardecimal, zobacz Data Compression.

Gdy baza danych jest najpierw dołączona lub przywrócona do nowego wystąpienia programu SQL Server, kopia klucza głównego bazy danych (zaszyfrowana za pomocą klucza głównego usługi) nie jest jeszcze przechowywana na serwerze. Należy użyć instrukcji OPEN MASTER KEY, aby odszyfrować klucz główny bazy danych (DMK). Po odszyfrowaniu klucza DMK można włączyć automatyczne odszyfrowywanie w przyszłości przy użyciu instrukcji ALTER MASTER KEY REGENERATE aprowizacji serwera z kopią klucza DMK zaszyfrowanego przy użyciu klucza głównego usługi (SMK). Gdy baza danych została uaktualniona z wcześniejszej wersji, klucz DMK powinien zostać wygenerowany ponownie, aby użyć nowszego algorytmu AES. Aby uzyskać więcej informacji na temat ponownego generowania zestawu DMK, zobacz ALTER MASTER KEY. Czas wymagany do ponownego wygenerowania klucza DMK do uaktualnienia do usługi AES zależy od liczby obiektów chronionych przez klucz DMK. Ponowne generowanie klucza DMK w celu uaktualnienia do AES jest konieczne tylko raz i nie ma wpływu na przyszłe ponowne generowanie w ramach strategii rotacji kluczy. Aby uzyskać informacje o sposobie uaktualniania bazy danych przy użyciu dołączania, zobacz Uaktualnianie bazy danych przy użyciu odłączania i dołączania.

Ważny

Zalecamy, aby nie dołączać baz danych z nieznanych lub niezaufanych źródeł. Takie bazy danych mogą zawierać złośliwy kod, który może wykonywać niezamierzony kod Transact-SQL lub powodować błędy, modyfikując schemat lub fizyczną strukturę bazy danych. Przed użyciem bazy danych z nieznanego lub niezaufanego źródła uruchom DBCC CHECKDB w bazie danych na serwerze nieprodukcyjnym, a także sprawdź kod, taki jak procedury składowane lub inny kod zdefiniowany przez użytkownika, w bazie danych.

Nuta

Opcje GODNE ZAUFANIA i DB_CHAINING nie mają wpływu podczas dołączania bazy danych.

FOR ATTACH_REBUILD_LOG

Określa, że baza danych jest tworzona przez dołączenie istniejącego zestawu plików systemu operacyjnego. Ta opcja jest ograniczona do odczytu/zapisu baz danych. Musi istnieć wpis <filespec> określający plik podstawowy. Jeśli brakuje co najmniej jednego pliku dziennika transakcji, plik dziennika zostanie ponownie skompilowany. ATTACH_REBUILD_LOG automatycznie tworzy nowy, 1 MB pliku dziennika. Ten plik jest umieszczany w domyślnej lokalizacji pliku dziennika. Aby uzyskać informacje o tej lokalizacji, zobacz View or Change the Default Locations for Data and Log Files in SSMS(Zmienianie domyślnych lokalizacji plików danych i dzienników w programie SSMS).

Nuta

Jeśli pliki dziennika są dostępne, aparat bazy danych używa tych plików zamiast odbudowywać pliki dziennika.

W przypadku ATTACH_REBUILD_LOG wymagane są następujące warunki:

  • Czyste zamknięcie bazy danych.
  • Wszystkie pliki danych (MDF i NDF) muszą być dostępne.

Ważny

Ta operacja powoduje przerwanie łańcucha kopii zapasowych dziennika. Zalecamy wykonanie pełnej kopii zapasowej bazy danych po zakończeniu operacji. Aby uzyskać więcej informacji, zobacz BACKUP.

Zazwyczaj funkcja FOR ATTACH_REBUILD_LOG jest używana podczas kopiowania bazy danych odczytu/zapisu z dużym dziennikiem na inny serwer, na którym kopia będzie używana głównie lub tylko w przypadku operacji odczytu, a w związku z tym wymaga mniej miejsca w dzienniku niż oryginalna baza danych.

Nie można określić ATTACH_REBUILD_LOG dla migawki bazy danych.

Aby uzyskać więcej informacji na temat dołączania i odłączania baz danych, zobacz Database Detach and Attach.

<filespec>

Steruje właściwościami pliku.

LOGICAL_FILE_NAME NAZW

Określa nazwę logiczną pliku. Nazwa jest wymagana, gdy określono nazwę PLIKU, z wyjątkiem określenia jednej z klauzul FOR ATTACH. Grupa plików FILESTREAM nie może mieć nazwy PRIMARY.

logical_file_name

To nazwa logiczna używana w programie SQL Server podczas odwoływania się do pliku. Logical_file_name musi być unikatowa w bazie danych i być zgodna z regułami dotyczącymi identyfikatorów . Nazwa może być znakiem lub stałą Unicode albo zwykłym lub rozdzielonym identyfikatorem.

NAZWA PLIKU { 'os_file_name' | 'filestream_path' }

Określa nazwę pliku systemu operacyjnego (fizycznego).

os_file_name

To ścieżka i nazwa pliku używana przez system operacyjny podczas tworzenia pliku. Plik musi znajdować się na jednym z następujących urządzeń: na serwerze lokalnym, na którym jest zainstalowany program SQL Server, sieci magazynowania [SAN] lub sieci opartej na protokole iSCSI. Określona ścieżka musi istnieć przed wykonaniem instrukcji CREATE DATABASE. Aby uzyskać więcej informacji, zobacz Pliki bazy danych i grupy plików w dalszej części tego artykułu.

Parametry SIZE, MAXSIZE i FILEGROWTH można ustawić, gdy dla pliku określono ścieżkę UNC.

Jeśli plik znajduje się na partycji pierwotnej, os_file_name musi określić tylko literę dysku istniejącej partycji pierwotnej. Na każdej partycji pierwotnej można utworzyć tylko jeden plik danych.

Nuta

Partycje pierwotne nie są obsługiwane w programie SQL Server 2014 i nowszych wersjach.

Pliki danych nie powinny być umieszczane w skompresowanych systemach plików, chyba że pliki są plikami pomocniczymi tylko do odczytu lub baza danych jest tylko do odczytu. Pliki dziennika nigdy nie powinny być umieszczane w skompresowanych systemach plików.

filestream_path

W przypadku grupy plików FILESTREAM nazwa PLIKU odwołuje się do ścieżki, w której będą przechowywane dane FILESTREAM. Ścieżka do ostatniego folderu musi istnieć, a ostatni folder nie może istnieć. Jeśli na przykład określisz ścieżkę C:\MyFiles\MyFilestreamData, C:\MyFiles musi istnieć przed uruchomieniem polecenia ALTER DATABASE, ale folder MyFilestreamData nie może istnieć.

Grupa plików i plik (<filespec>) muszą zostać utworzone w tej samej instrukcji.

Właściwości SIZE i FILEGROWTH nie mają zastosowania do grupy plików FILESTREAM.

Rozmiar

Określa rozmiar pliku.

Nie można określić rozmiaru, gdy os_file_name jest określona jako ścieżka UNC. ROZMIAR nie ma zastosowania do grupy plików FILESTREAM.

rozmiar

Jest początkowym rozmiarem pliku.

Jeśli rozmiar nie zostanie podany dla pliku podstawowego, aparat bazy danych używa rozmiaru pliku podstawowego w bazie danych model. Domyślny rozmiar bazy danych model wynosi 8 MB (począwszy od programu SQL Server 2016 (13.x)) lub 1 MB (w przypadku wcześniejszych wersji). Jeśli określono pomocniczy plik danych lub plik dziennika, ale rozmiar nie jest określony dla pliku, aparat bazy danych tworzy plik 8 MB (począwszy od programu SQL Server 2016 (13.x)) lub 1 MB (w przypadku wcześniejszych wersji). Rozmiar określony dla pliku podstawowego musi być co najmniej tak duży, jak plik podstawowy bazy danych model.

Można użyć sufiksów kilobajtów (KB), megabajtów (MB), gigabajtów (GB) lub terabajtów (TB). Wartość domyślna to MB. Określ liczbę całkowitą. Nie dołączaj liczby dziesiętnej. Size jest wartością całkowitą. W przypadku wartości większych niż 2147483647 użyj większych jednostek.

MAX_SIZE MAXSIZE

Określa maksymalny rozmiar, do którego można zwiększyć plik. Nie można określić parametru MAXSIZE, gdy os_file_name jest określona jako ścieżka UNC.

max_size

Jest maksymalnym rozmiarem pliku. Można użyć sufiksów KB, MB, GB i TB. Wartość domyślna to MB. Określ liczbę całkowitą. Nie dołączaj liczby dziesiętnej. Jeśli max_size nie zostanie określony, plik rośnie do momentu zapełnienia dysku. Max_size jest wartością całkowitą. W przypadku wartości większych niż 2147483647 użyj większych jednostek.

NIEOGRANICZONY

Określa, że plik rośnie do momentu zapełnienia dysku. W programie SQL Server plik dziennika określony z nieograniczonym wzrostem ma maksymalny rozmiar 2 TB, a plik danych ma maksymalny rozmiar 16 TB.

Nuta

Nie ma maksymalnego rozmiaru, jeśli ta opcja jest określona dla kontenera FILESTREAM. Nadal rośnie, dopóki dysk nie zostanie zapełniony.

FILEGROWTH growth_increment

Określa automatyczny przyrost wzrostu pliku. Ustawienie FILEGROWTH dla pliku nie może przekraczać ustawienia MAXSIZE. Nie można określić parametru FILEGROWTH, gdy os_file_name jest określona jako ścieżka UNC. FILEGROWTH nie ma zastosowania do grupy plików FILESTREAM.

growth_increment

Czy ilość miejsca dodawanego do pliku za każdym razem, gdy jest wymagane nowe miejsce.

Wartość można określić w MB, KB, GB, TB lub procent (%). Jeśli liczba jest określona bez sufiksu MB, KB lub %, wartość domyślna to MB. Po określeniu % rozmiar przyrostu jest określoną wartością procentową rozmiaru pliku w momencie wystąpienia przyrostu. Określony rozmiar jest zaokrąglany do najbliższego 64 KB, a minimalna wartość to 64 KB.

Wartość 0 wskazuje, że automatyczny wzrost jest wyłączony i nie jest dozwolone żadne dodatkowe miejsce.

Jeśli nie określono wartości FILEGROWTH, wartości domyślne to:

Wersja Wartości domyślne
Począwszy od programu SQL Server 2016 (13.x) Dane 64 MB. Pliki dziennika 64 MB.
Począwszy od programu SQL Server 2005 (9.x) Dane 1 MB. Pliki dziennika 10%.
Przed programem SQL Server 2005 (9.x) Dane 10%. Pliki dziennika 10%.

< grupy plików >

Steruje właściwościami grupy plików. Nie można określić grupy plików w migawki bazy danych.

FILEGROUP_NAME FILEGROUP

Jest logiczną nazwą grupy plików.

filegroup_name

filegroup_name musi być unikatowa w bazie danych i nie może być nazwami podstawowymi i PRIMARY_LOG. Nazwa może być znakiem lub stałą Unicode albo zwykłym lub rozdzielonym identyfikatorem. Nazwa musi być zgodna z regułami dotyczącymi identyfikatorów .

ZAWIERA PLIKSTREAM

Określa, że grupa plików przechowuje pliki FILESTREAM binarnych dużych obiektów (BLOB) w systemie plików.

DOMYŚLNY

Określa nazwaną grupę plików jest domyślną grupą plików w bazie danych.

ZAWIERA MEMORY_OPTIMIZED_DATA

Dotyczy: SQL Server 2014 (12.x) i nowsze

Określa, że grupa plików przechowuje memory_optimized danych w systemie plików. Aby uzyskać więcej informacji, zobacz omówienie optymalizacji In-Memory i scenariusze użycia. Tylko jedna grupa plików MEMORY_OPTIMIZED_DATA jest dozwolona dla każdej bazy danych. Przykłady kodu, które tworzą grupę plików do przechowywania danych zoptymalizowanych pod kątem pamięci, zobacz Creating a Memory-Optimized Table (Tworzenie tabeli Memory-Optimized) i natywnie skompilowaną procedurę składowaną.

database_snapshot_name

To nazwa nowej migawki bazy danych. Nazwy migawek bazy danych muszą być unikatowe w wystąpieniu programu SQL Server i być zgodne z regułami dotyczącymi identyfikatorów. database_snapshot_name może mieć maksymalnie 128 znaków.

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

W przypadku tworzenia migawki bazy danych określa listę plików w źródłowej bazie danych. Aby migawka działała, wszystkie pliki danych muszą być określone indywidualnie. Jednak pliki dziennika nie są dozwolone w przypadku migawek bazy danych. Grupy plików FILESTREAM nie są obsługiwane przez migawki bazy danych. Jeśli plik danych FILESTREAM jest zawarty w klauzuli CREATE DATABASE ON, instrukcja zakończy się niepowodzeniem i zostanie zgłoszony błąd.

Opisy nazw i nazwy pliku oraz ich wartości można znaleźć w opisach równoważnych wartości <filespec>.

Nuta

Podczas tworzenia migawki bazy danych inne <plikipec> opcje i słowo kluczowe PRIMARY są niedozwolone.

JAKO MIGAWKA source_database_name

Określa, że tworzona baza danych jest migawką bazy danych źródłowej określonej przez source_database_name. Migawka i źródłowa baza danych muszą znajdować się w tym samym wystąpieniu.

Przed programem SQL Server 2019 źródłowa baza danych migawki bazy danych nie może zawierać MEMORY_OPTIMIZED_DATA grupy plików. Dodano obsługę migawek bazy danych w pamięci w programie SQL Server 2019.

Aby uzyskać więcej informacji, zobacz Database Snapshots.

Uwagi

Kopia zapasowa master database powinna być tworzona za każdym razem, gdy baza danych użytkownika zostanie utworzona, zmodyfikowana lub porzucona.

Instrukcja CREATE DATABASE musi działać w trybie automatycznego zatwierdzania (domyślny tryb zarządzania transakcjami) i nie jest dozwolona w jawnej lub niejawnej transakcji.

Możesz użyć jednej instrukcji CREATE DATABASE, aby utworzyć bazę danych i pliki, które przechowują bazę danych. Program SQL Server implementuje instrukcję CREATE DATABASE, wykonując następujące kroki:

  1. Program SQL Server używa kopii modelowej bazy danych do inicjowania bazy danych i jej metadanych.
  2. Identyfikator GUID brokera usług jest przypisywany do bazy danych.
  3. Aparat bazy danych wypełnia pozostałą część bazy danych pustymi stronami, z wyjątkiem stron, które zawierają dane wewnętrzne, które rejestrują sposób użycia miejsca w bazie danych.

W wystąpieniu programu SQL Server można określić maksymalnie 32 767 baz danych.

Każda baza danych ma właściciela, który może wykonywać specjalne działania w bazie danych. Właścicielem jest użytkownik, który tworzy bazę danych. Właściciel bazy danych można zmienić przy użyciu ALTER AUTHORIZATION.

Niektóre funkcje bazy danych zależą od funkcji lub możliwości dostępnych w systemie plików w celu zapewnienia pełnej funkcjonalności bazy danych. Oto kilka przykładów funkcji, które zależą od zestawu funkcji systemu plików:

  • DBCC CHECKDB
  • FileStream
  • Kopie zapasowe online przy użyciu usługi VSS i migawek plików
  • Tworzenie migawki bazy danych
  • Grupa plików danych zoptymalizowana pod kątem pamięci

Pliki bazy danych i grupy plików

Każda baza danych ma co najmniej dwa pliki, plik podstawowy i plik dziennika transakcji i co najmniej jedną grupę plików. Dla każdej bazy danych można określić maksymalnie 32 767 plików i 32 767 grup plików.

Podczas tworzenia bazy danych należy jak najwięcej plików danych w oparciu o maksymalną oczekiwaną ilość danych w bazie danych.

Zalecamy użycie sieci magazynowania (SAN), sieci opartej na protokole iSCSI lub lokalnie dołączonego dysku do przechowywania plików bazy danych programu SQL Server, ponieważ ta konfiguracja optymalizuje wydajność i niezawodność programu SQL Server.

Migawki bazy danych

Możesz użyć instrukcji CREATE DATABASE, aby utworzyć widok statyczny tylko do odczytu, migawkę bazy danych źródłowej bazy danych . Migawka bazy danych jest transakcyjnie zgodna z źródłową bazą danych, ponieważ istniała w momencie utworzenia migawki. Źródłowa baza danych może zawierać wiele migawek.

Nuta

Podczas tworzenia migawki bazy danych instrukcja CREATE DATABASE nie może odwoływać się do plików dziennika, plików offline, przywracania plików i nieistniejących plików.

Jeśli tworzenie migawki bazy danych zakończy się niepowodzeniem, migawka stanie się podejrzana i musi zostać usunięta. Aby uzyskać więcej informacji, zobacz DROP DATABASE.

Każda migawka będzie się powtarzać, dopóki nie zostanie usunięta przy użyciu DROP DATABASE.

Aby uzyskać więcej informacji, zobacz Database Snapshots i Create a database snapshot (Transact-SQL).

Opcje bazy danych

Kilka opcji bazy danych jest ustawianych automatycznie za każdym razem, gdy tworzysz bazę danych. Aby uzyskać listę tych opcji, zobacz ALTER DATABASE SET Options.

Modelowa baza danych i tworzenie nowych baz danych

Wszystkie obiekty zdefiniowane przez użytkownika w bazie danych modelu są kopiowane do wszystkich nowo utworzonych baz danych. Do bazy danych model można dodawać dowolne obiekty, takie jak tabele, widoki, procedury składowane, typy danych itd., do bazy danych model, które mają zostać uwzględnione we wszystkich nowo utworzonych bazach danych.

W przypadku określenia instrukcji CREATE DATABASE <database_name> bez dodatkowych parametrów rozmiaru plik danych podstawowych jest taki sam jak plik podstawowy w bazie danych model.

O ile nie określono FOR ATTACH, każda nowa baza danych dziedziczy ustawienia opcji bazy danych z bazy danych model. Na przykład opcja bazy danych automatyczne zmniejszanie jest ustawiona na true w model i w wszelkich nowych bazach danych. Jeśli zmienisz opcje w bazie danych model, te nowe ustawienia opcji będą używane w nowych bazach danych. Zmiana operacji w bazie danych model nie ma wpływu na istniejące bazy danych. Jeśli opcja FOR ATTACH jest określona w instrukcji CREATE DATABASE, nowa baza danych dziedziczy ustawienia opcji bazy danych oryginalnej bazy danych.

Wyświetlanie informacji o bazie danych

Widoki wykazu, funkcje systemowe i procedury składowane systemu umożliwiają zwracanie informacji o bazach danych, plikach i grupach plików. Aby uzyskać więcej informacji, zobacz Widoki systemowe.

Uprawnienia

Wymaga uprawnień CREATE DATABASE, CREATE ANY DATABASElub ALTER ANY DATABASE.

Aby zachować kontrolę nad użyciem dysku w wystąpieniu programu SQL Server, uprawnienia do tworzenia baz danych są zwykle ograniczone do kilku logowań.

W poniższym przykładzie przedstawiono uprawnienia do tworzenia bazy danych dla użytkownika bazy danych Fay.

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

Uprawnienia do plików danych i dzienników

W programie SQL Server niektóre uprawnienia są ustawiane na plikach danych i dziennika każdej bazy danych. Następujące uprawnienia są ustawiane za każdym razem, gdy do bazy danych są stosowane następujące operacje:

  • Przywiązany
  • Kopia zapasowa
  • Utworzono
  • Odłączony
  • Zmodyfikowano w celu dodania nowego pliku
  • Przywrócone

Uprawnienia uniemożliwiają przypadkowe manipulowanie plikami, jeśli znajdują się w katalogu z otwartymi uprawnieniami.

Nuta

Wersja Microsoft SQL Server 2005 Express nie ustawia uprawnień do plików danych i dziennika.

Przykłady

A. Tworzenie bazy danych bez określania plików

Poniższy przykład tworzy bazę danych mytest i tworzy odpowiedni plik dziennika podstawowego i transakcyjnego. Ponieważ instrukcja nie ma <plikówpec> elementów, podstawowy plik bazy danych jest rozmiarem pliku podstawowego bazy danych model. Dziennik transakcji jest ustawiony na większe z następujących wartości: 512 KB lub 25% rozmiar pliku danych podstawowych. Ponieważ parametr MAXSIZE nie jest określony, pliki mogą rosnąć, aby wypełnić wszystkie dostępne miejsce na dysku. W tym przykładzie pokazano również, jak usunąć bazę danych o nazwie mytest, jeśli istnieje, przed utworzeniem bazy danych mytest.

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. Tworzenie bazy danych określającej dane i pliki dziennika transakcji

Poniższy przykład tworzy bazę danych Sales. Ponieważ słowo kluczowe PRIMARY nie jest używane, pierwszy plik (Sales_dat) staje się plikiem podstawowym. Ponieważ ani MB, ani KB nie jest określony w parametrze SIZE dla pliku Sales_dat, używa MB i jest przydzielany w megabajtach. Plik Sales_log jest przydzielany w megabajtach, ponieważ sufiks MB jest jawnie określony w parametrze SIZE.

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

C. Tworzenie bazy danych przez określenie wielu plików dziennika danych i transakcji

Poniższy przykład obejmuje tworzenie Archive bazy danych z trzema plikami danych 100-MB i dwoma plikami dziennika transakcji 100-MB. Plik podstawowy jest pierwszym plikiem na liście i jest jawnie określony za pomocą słowa kluczowego PRIMARY. Pliki dziennika transakcji są określane zgodnie z LOG ON słowami kluczowymi. Zwróć uwagę, że rozszerzenia używane dla plików w FILENAME opcji: .mdf jest używany dla podstawowych plików danych, .ndf jest używany dla pomocniczych plików danych, a .ldf jest używany dla plików dziennika transakcji. W tym przykładzie baza danych jest umieszczana na dysku D: zamiast z bazą danych master.

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

D. Tworzenie bazy danych zawierającej grupy plików

Poniższy przykład tworzy bazę danych Sales z następującymi grupami plików:

  • Podstawowa grupa plików z plikami Spri1_dat i Spri2_dat. Przyrosty FILEGROWTH dla tych plików są określane jako 15%.
  • Grupa plików o nazwie SalesGroup1 z plikami SGrp1Fi1 i SGrp1Fi2.
  • Grupa plików o nazwie SalesGroup2 z plikami SGrp2Fi1 i SGrp2Fi2.

W tym przykładzie pliki danych i dzienników znajdują się na różnych dyskach w celu zwiększenia wydajności.

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

E. Dołączanie bazy danych

Poniższy przykład odłącza bazę danych Archive utworzoną w przykładzie D, a następnie dołącza ją przy użyciu klauzuli FOR ATTACH. Archive zdefiniowano, aby mieć wiele plików danych i dzienników. Jednak ze względu na to, że lokalizacja plików nie zmieniła się od czasu ich utworzenia, należy określić tylko plik podstawowy w klauzuli FOR ATTACH. Począwszy od programu SQL Server 2005 (9.x), wszystkie pliki pełnotekstowe, które są częścią dołączonej bazy danych, zostaną dołączone do bazy danych.

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

F. Tworzenie migawki bazy danych

Poniższy przykład tworzy migawkę bazy danych sales_snapshot0600. Ponieważ migawka bazy danych jest tylko do odczytu, nie można określić pliku dziennika. Zgodnie ze składnią określono każdy plik w źródłowej bazie danych, a grupy plików nie są określone.

Źródłowa baza danych dla tego przykładu to baza danych Sales utworzona w przykładzie 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. Tworzenie bazy danych i określanie nazwy sortowania i opcji

Poniższy przykład tworzy bazę danych MyOptionsTest. Określono nazwę sortowania, a opcje TRUSTYWORTHY i DB_CHAINING są ustawione 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. Dołączanie wykazu pełnotekstowego, który został przeniesiony

Poniższy przykład dołącza AdvWksFtCat wykazu pełnotekstowego wraz z plikami danych i dzienników AdventureWorks2022. W tym przykładzie wykaz pełnotekstowy jest przenoszony z domyślnej lokalizacji do nowej lokalizacji c:\myFTCatalogs. Pliki danych i dzienników pozostają w ich domyślnych lokalizacjach.

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

Ja. Tworzenie bazy danych, która określa grupę plików wierszy i dwie grupy plików FILESTREAM

Poniższy przykład tworzy bazę danych FileStreamDB. Baza danych jest tworzona przy użyciu jednej grupy plików wierszy i dwóch grup plików FILESTREAM. Każda grupa plików zawiera jeden plik:

  • FileStreamDB_data zawiera dane wierszy. Zawiera jeden plik, FileStreamDB_data.mdf ze ścieżką domyślną.
  • FileStreamPhotos zawiera dane FILESTREAM. Zawiera dwa kontenery danych FILESTREAM, FSPhotos, znajdujące się w C:\MyFSfolder\Photos i FSPhotos2, znajdujące się w D:\MyFSfolder\Photos. Jest ona oznaczona jako domyślna grupa plików FILESTREAM.
  • FileStreamResumes zawiera dane FILESTREAM. Zawiera on jeden kontener danych FILESTREAM, FSResumes, znajdujący się w C:\MyFSfolder\Resumes.
USE master;
GO
-- Get the SQL Server data path.
DECLARE @data_path nvarchar(256);
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
      FROM master.sys.master_files
      WHERE database_id = 1 AND file_id = 1);

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

J. Tworzenie bazy danych zawierającej grupę plików FILESTREAM z wieloma plikami

Poniższy przykład tworzy bazę danych BlobStore1. Baza danych jest tworzona z jedną grupą plików wierszy i jedną grupą plików FILESTREAM, FS. Grupa plików FILESTREAM zawiera dwa pliki, FS1 i FS2. Następnie baza danych zostanie zmieniona przez dodanie trzeciego pliku FS3do grupy plików FILESTREAM.

USE master;
GO

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

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

* SQL Database *

usługi SQL Managed Instance

 

SQL Database

Przegląd

W usłudze Azure SQL Database ta instrukcja może służyć z serwerem Azure SQL do tworzenia pojedynczej bazy danych lub bazy danych w elastycznej puli. W przypadku tej instrukcji należy określić nazwę bazy danych, sortowanie, maksymalny rozmiar, edycję, cel usługi i, jeśli ma to zastosowanie, elastyczną pulę dla nowej bazy danych. Można go również użyć do utworzenia bazy danych w elastycznej puli. Ponadto można jej użyć do utworzenia kopii bazy danych na innym serwerze usługi SQL Database.

Składnia

Tworzenie bazy danych

Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.

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

Kopiowanie bazy danych

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

Argumenty

database_name

Nazwa nowej bazy danych. Ta nazwa musi być unikatowa w programie SQL Server i być zgodna z regułami programu SQL Server dotyczącymi identyfikatorów. Aby uzyskać więcej informacji, zobacz Identyfikatory.

Collation_name

Określa domyślne sortowanie danych bazy danych. Określ CATALOG_COLLATION dla metadanych systemu, takich jak identyfikatory obiektów.

Nazwa sortowania może być nazwą sortowania systemu Windows lub nazwą sortowania SQL. Jeśli nie zostanie określona, baza danych zostanie przypisana do sortowania domyślnego, które jest SQL_Latin1_General_CP1_CI_AS.

Aby uzyskać więcej informacji na temat nazw sortowania systemu Windows i SQL, COLLATE (Transact-SQL).

CATALOG_COLLATION

Określa sortowanie domyślne wykazu metadanych. Argument CATALOG_COLLATION jest dostępny tylko podczas tworzenia bazy danych i nie można go zmienić po utworzeniu.

Domyślnie wykaz metadanych nazw obiektów systemowych jest sortowany w celu SQL_Latin1_General_CP1_CI_AS sortowania. Jest to ustawienie domyślne w usłudze Azure SQL Database, jeśli CATALOG_COLLATION jest nieokreślony.

DATABASE_DEFAULT określa, że wykaz metadanych używany dla widoków systemowych i tabel systemowych jest sortowany w celu dopasowania sortowania bazy danych. Jeśli chcesz, aby identyfikatory obiektów w metadanych systemowych postępowały zgodnie z tym samym sortowaniem co dane, należy utworzyć bazę danych WITH CATALOG_COLLATION = DATABASE_DEFAULT.

  • Możesz chcieć używać różnych sortowania dla identyfikatorów danych i obiektów. Poniższy przykład tworzy bazę danych z sortowaniem uwzględniającym wielkość liter dla danych wierszy, ale użyje domyślnej SQL_Latin1_General_CP1_CI_AS sortowania bez uwzględniania wielkości liter dla identyfikatorów obiektów.

    CREATE DATABASE [different-collations] COLLATE SQL_Latin1_General_CP1_CS_AS
    
  • Jeśli chcesz, aby metadane danych i systemu używały tego samego sortowania, określ WITH CATALOG_COLLATION = DATABASE_DEFAULT. Poniższy przykład tworzy bazę danych z sortowaniem uwzględniającym wielkość liter, które będzie używane dla identyfikatorów obiektów.

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

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

Określa sposób replikowania kopii zapasowych przywracania do punktu w czasie i przechowywania długoterminowego dla bazy danych. Przywracanie geograficzne lub możliwość odzyskiwania po awarii regionalnej jest dostępna tylko wtedy, gdy baza danych jest tworzona z nadmiarowością magazynu kopii zapasowych GEO. O ile nie określono jawnie, bazy danych utworzone za pomocą języka T-SQL używają magazynu kopii zapasowych geograficznie nadmiarowych.

Aby wymusić miejsce przechowywania danych podczas tworzenia bazy danych przy użyciu języka T-SQL, użyj LOCAL lub ZONE jako danych wejściowych dla parametru BACKUP_STORAGE_REDUNDANCY.

Podczas tworzenia bazy danych jako kopii innej bazy danych z AS COPY OF, określanie opcji jest obsługiwane i powinno być opakowane w nawiasy. Na przykład WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

LEDGER = {ON | WYŁ. }

Po ustawieniu wartości na ONprogram tworzy bazę danych rejestru, w której jest chroniona integralność wszystkich danych użytkownika. W bazie danych rejestru można tworzyć tylko tabele rejestru. Wartość domyślna to OFF. Nie można zmienić wartości opcji LEDGER po utworzeniu bazy danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie bazy danych rejestru.

MAXSIZE

Określa maksymalny rozmiar bazy danych. WARTOŚĆ MAXSIZE musi być prawidłowa dla określonej wersji (warstwa usługi).

Poniżej przedstawiono obsługiwane wartości MAXSIZE i wartości domyślne (D) dla warstw usług.

Nuta

Argument MAXSIZE nie ma zastosowania do pojedynczych baz danych w warstwie usługi Hiperskala. Pojedyncze bazy danych warstwy Hiperskala rosną zgodnie z potrzebami, do 128 TB. Usługa SQL Database automatycznie dodaje magazyn — nie trzeba ustawiać maksymalnego rozmiaru.

modelu jednostek DTU dla pojedynczych baz danych i baz danych w puli na serwerze usługi SQL Database

MAXSIZE Podstawowa S0-S2 S3-S12 P1-P6 P11-P15
100 MB
500 MB
1 GB
2 GB √ (D)
5 GB N/A
10 GB N/A
20 GB N/A
30 GB N/A
40 GB N/A
50 GB N/A
100 GB N/A
150 GB N/A
200 GB N/A
250 GB N/A √ (D) √ (D)
300 GB N/A N/A
400 GB N/A N/A
500 GB N/A N/A √ (D)
750 GB N/A N/A
1024 GB N/A N/A √ (D)
Od 1024 GB do 4096 GB w przyrostach 256 GB* N/A N/A N/A N/A

* P11 i P15 zezwalają na maksymalny rozmiar MAXSIZE do 4 TB, a rozmiar domyślny wynosi 1024 GB. P11 i P15 mogą korzystać z maksymalnie 4 TB dołączonego miejsca do magazynowania bez dodatkowych opłat. W warstwie Premium wartość MAXSIZE większa niż 1 TB jest obecnie dostępna w następujących regionach: Wschodnie stany USA2, Zachodnie stany USA, US Gov Wirginia, Europa Zachodnia, Niemcy Środkowe, Azja Południowo-Wschodnia, Japonia Wschodnia, Australia Wschodnia, Kanada Środkowa i Kanada Wschodnia. Aby uzyskać więcej informacji na temat ograniczeń zasobów dla modelu JEDNOSTEK DTU, zobacz limity zasobów jednostek DTU.

Wartość MAXSIZE dla modelu DTU, jeśli określono, musi być prawidłową wartością pokazaną w poprzedniej tabeli dla określonej warstwy usługi.

W przypadku limitów, takich jak maksymalny rozmiar danych i rozmiar tempdb w modelu zakupów rdzeni wirtualnych, zapoznaj się z artykułami dotyczącymi limitów zasobów dla pojedynczych baz danych lub limitów zasobów dla pul elastycznych.

Jeśli podczas korzystania z modelu rdzeni wirtualnych nie ustawiono żadnej wartości MAXSIZE, wartość domyślna to 32 GB. Aby uzyskać więcej informacji na temat ograniczeń zasobów dla modelu rdzeni wirtualnych, zobacz limity zasobów rdzeni wirtualnych.

WYDANIE

Określa warstwę usługi bazy danych.

Pojedyncze i w puli bazy danych. Dostępne wartości to: "Basic", "Standard", "Premium", "GeneralPurpose", "BusinessCritical" i "Hiperskala".

Następujące reguły dotyczą argumentów MAXSIZE i EDITION:

  • Jeśli określono wartość EDITION, ale wartość MAXSIZE nie jest określona, zostanie użyta wartość domyślna dla wersji. Jeśli na przykład wartość EDITION jest ustawiona na Standardowa, a wartość MAXSIZE nie jest określona, wartość MAXSIZE zostanie automatycznie ustawiona na 250 MB.
  • Jeśli nie określono wartości MAXSIZE ani EDITION, wartość EDITION jest ustawiona na GeneralPurpose, a wartość MAXSIZE jest ustawiona na 32 GB.

SERVICE_OBJECTIVE

Określa rozmiar obliczeniowy i cel usługi.

  • W przypadku modelu zakupów jednostek DTU: S0, S1, S2, S3, S4, S6, S7, S9, S12, P1, P2, P4, P6, P11, P15
  • W przypadku najnowszego modelu zakupów rdzeni wirtualnych wybierz warstwę i podaj liczbę rdzeni wirtualnych z wstępnie ustawionej listy wartości, gdzie liczba rdzeni wirtualnych jest n. Zapoznaj się z limitami zasobów dla pojedynczych baz danych lub limitów zasobów dla pul elastycznych.
    • Na przykład:
    • GP_Gen5_8 w przypadku warstwy Ogólnego przeznaczenia, aprowizowania zasobów obliczeniowych, standardowej serii (Gen5), 8 rdzeni wirtualnych.
    • GP_S_Gen5_8 dla ogólnego przeznaczenia, bezserwerowych obliczeń, serii Standardowej (Gen5), 8 rdzeni wirtualnych.
    • HS_Gen5_8 dla warstwy Hiperskala, aprowizowanych zasobów obliczeniowych, serii Standardowej (Gen5), 8 rdzeni wirtualnych.
    • HS_S_Gen5_8 dla hiperskala, bezserwerowych obliczeń, serii Standardowej (Gen5), 8 rdzeni wirtualnych.

Aby uzyskać opisy celów usługi i więcej informacji o rozmiarze, wersjach i kombinacjach celów usługi, zobacz Warstwy usługi Azure SQL Database. Jeśli określona SERVICE_OBJECTIVE nie jest obsługiwana przez edycję, zostanie wyświetlony błąd. Aby zmienić wartość SERVICE_OBJECTIVE z jednej warstwy na inną (na przykład z S1 na P1), należy również zmienić wartość EDITION. Obsługa celów usługi PRS została usunięta.

ELASTIC_POOL (nazwa = <elastic_pool_name>)

Dotyczy tylko: pojedynczych i w puli baz danych. Nie dotyczy baz danych w warstwie usługi Hiperskala. Aby utworzyć nową bazę danych w elastycznej puli baz danych, ustaw SERVICE_OBJECTIVE bazy danych na ELASTIC_POOL i podaj nazwę puli. Aby uzyskać więcej informacji, zobacz Tworzenie elastycznej puli usługi SQL Database i zarządzanie nią.

JAKO KOPIA [source_server_name.]source_database_name

Dotyczy tylko: pojedynczych i w puli baz danych.

Użyj AS COPY OF, aby skopiować bazę danych na ten sam lub inny serwer usługi SQL Database.

Podczas tworzenia bazy danych jako kopii innej bazy danych z AS COPY OF, określanie opcji jest obsługiwane i powinno być opakowane w nawiasy. Na przykład WITH (BACKUP_STORAGE_REDUNDANCY = 'LOCAL');.

source_server_name Nazwa serwera usługi SQL Database, na którym znajduje się źródłowa baza danych. Ten parametr jest opcjonalny, gdy źródłowa baza danych i docelowa baza danych mają znajdować się na tym samym serwerze usługi SQL Database.

Nuta

Argument AS COPY OF nie obsługuje w pełni kwalifikowanych unikatowych nazw domen. Innymi słowy, jeśli w pełni kwalifikowana nazwa domeny serwera jest serverName.database.windows.net, użyj tylko serverName podczas kopiowania bazy danych.

source_database_name

Nazwa bazy danych, która ma zostać skopiowana.

Uwagi

Bazy danych w usłudze Azure SQL Database mają kilka ustawień domyślnych ustawionych podczas tworzenia bazy danych. Aby uzyskać więcej informacji na temat tych ustawień domyślnych, zobacz listę wartości w DATABASEPROPERTYEX.

MAXSIZE umożliwia ograniczenie rozmiaru bazy danych. Jeśli rozmiar bazy danych osiągnie MAXSIZE, zostanie wyświetlony kod błędu 40544. W takim przypadku nie można wstawiać ani aktualizować danych ani tworzyć nowych obiektów (takich jak tabele, procedury składowane, widoki i funkcje). Można jednak nadal odczytywać i usuwać dane, obcinać tabele, usuwać tabele i indeksy oraz ponownie kompilować indeksy. Następnie można zaktualizować MAXSIZE do wartości większej niż bieżący rozmiar bazy danych lub usunąć niektóre dane, aby zwolnić miejsce do magazynowania. Zanim będzie można wstawić nowe dane, może wystąpić nawet piętnaście minut opóźnienia.

Aby później zmienić rozmiar, edycję lub wartości celu usługi, użyj ALTER DATABASE (Azure SQL Database).

Kopie bazy danych

Dotyczy tylko: pojedynczych i w puli baz danych.

Kopiowanie bazy danych przy użyciu instrukcji CREATE DATABASE jest operacją asynchroniczną. W związku z tym połączenie z serwerem usługi SQL Database nie jest wymagane przez pełny czas trwania procesu kopiowania. Instrukcja CREATE DATABASE zwraca użytkownikowi kontrolę po utworzeniu wpisu w sys.databases, ale przed zakończeniem operacji kopiowania bazy danych. Innymi słowy, instrukcja CREATE DATABASE jest zwracana pomyślnie, gdy kopia bazy danych jest nadal w toku.

  • Monitorowanie procesu kopiowania na serwerze usługi SQL Database: wykonaj zapytanie o kolumny lub w dm_database_copies lub kolumnie w widoku sys.databases. Widok sys.dm_operation_status może być używany, a także zwraca stan operacji bazy danych, w tym kopii bazy danych.

W momencie pomyślnego zakończenia procesu kopiowania docelowa baza danych jest transakcyjnie zgodna z źródłową bazą danych.

Następująca składnia i reguły semantyczne mają zastosowanie do użycia argumentu AS COPY OF:

  • Nazwa serwera źródłowego i nazwa serwera dla obiektu docelowego kopiowania może być taka sama lub inna. Jeśli są one takie same, ten parametr jest opcjonalny, a kontekst serwera bieżącej sesji jest używany domyślnie.
  • Nazwy źródłowej i docelowej bazy danych muszą być określone, unikatowe i zgodne z regułami programu SQL Server dotyczącymi identyfikatorów. Aby uzyskać więcej informacji, zobacz Identyfikatory.
  • Instrukcja CREATE DATABASE musi być wykonywana w kontekście bazy danych master serwera usługi SQL Database, na którym zostanie utworzona nowa baza danych.
  • Po zakończeniu kopiowania docelowa baza danych musi być zarządzana jako niezależna baza danych. Można wykonać instrukcje ALTER DATABASE i DROP DATABASE względem nowej bazy danych niezależnie od źródłowej bazy danych. Możesz również skopiować nową bazę danych do innej nowej bazy danych.
  • Źródłowa baza danych może być nadal dostępna, gdy kopia bazy danych jest w toku.

Aby uzyskać więcej informacji, zobacz Create a copy of an Azure SQL Database using Transact-SQL(Tworzenie kopii bazy danych Azure SQL Database przy użyciu języka Transact-SQL).

Ważny

Domyślnie kopia bazy danych jest tworzona z tą samą nadmiarowością magazynu kopii zapasowych co źródłowa baza danych.

Uprawnienia

Aby utworzyć bazę danych, identyfikator logowania musi być jednym z następujących podmiotów zabezpieczeń:

  • Identyfikator logowania podmiotu zabezpieczeń na poziomie serwera
  • Administrator firmy Microsoft dla serwera logicznego na platformie Azure
  • Identyfikator logowania będący członkiem roli bazy danych dbmanager

Dodatkowe wymagania dotyczące używania składni CREATE DATABASE ... AS COPY OF: Logowanie wykonujące instrukcję na serwerze lokalnym musi być również co najmniej db_owner na serwerze źródłowym. Jeśli identyfikator logowania jest oparty na uwierzytelnianiu programu SQL Server, identyfikator logowania wykonujący instrukcję na serwerze lokalnym musi mieć pasujący identyfikator logowania na źródłowym serwerze usługi SQL Database z identyczną nazwą i hasłem.

Przykłady

Prosty przykład

Prosty przykład tworzenia bazy danych.

CREATE DATABASE TestDB1;

Prosty przykład z wersją

Prosty przykład tworzenia bazy danych ogólnego przeznaczenia.

CREATE DATABASE TestDB2
( EDITION = 'GeneralPurpose' );

Przykład z dodatkowymi opcjami

Przykład z użyciem wielu opcji.

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

Tworzenie kopii bazy danych

Przykład tworzenia kopii bazy danych.

Dotyczy tylko: pojedynczych i w puli baz danych.

CREATE DATABASE escuela
AS COPY OF school;

Tworzenie bazy danych w elastycznej puli

Tworzy nową bazę danych w puli o nazwie S3M100:

Dotyczy tylko: pojedynczych i w puli baz danych.

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

Tworzenie kopii bazy danych na innym serwerze logicznym

Poniższy przykład tworzy kopię bazy danych db_original o nazwie db_copy w celu usługi Ogólnego przeznaczenia dla pojedynczej bazy danych. Jest to prawdą niezależnie od tego, czy db_original znajduje się w elastycznej puli, czy w ramach rozmiaru obliczeniowego (celu usługi) dla pojedynczej bazy danych.

Dotyczy tylko: pojedynczych i w puli baz danych.

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

Poniższy przykład tworzy kopię bazy danych db_original o nazwie db_copy w elastycznej puli o nazwie ep1. Jest to prawdą niezależnie od tego, czy db_original znajduje się w elastycznej puli, czy w ramach rozmiaru obliczeniowego (celu usługi) dla pojedynczej bazy danych. Jeśli db_original znajduje się w elastycznej puli o innej nazwie, db_copy jest nadal tworzona w ep1.

Dotyczy tylko: pojedynczych i w puli baz danych.

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

Tworzenie bazy danych z określoną wartością sortowania wykazu

Poniższy przykład ustawia sortowanie wykazu na DATABASE_DEFAULT podczas tworzenia bazy danych, co ustawia sortowanie wykazu na taki sam jak sortowanie bazy danych.

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

Tworzenie bazy danych przy użyciu nadmiarowości strefy dla kopii zapasowych

W poniższym przykładzie ustawiono nadmiarowość strefy dla kopii zapasowych bazy danych. Zarówno kopie zapasowe przywracania do punktu w czasie, jak i kopie zapasowe przechowywania długoterminowego (jeśli zostały skonfigurowane) będą używać tej samej nadmiarowości magazynu kopii zapasowych.

CREATE DATABASE test_zone_redundancy 
  WITH BACKUP_STORAGE_REDUNDANCY = 'ZONE';

Tworzenie bazy danych rejestru

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

Utwórz jako kopię bazy danych podczas zmieniania opcji

W poniższym przykładzie ustawiono różne opcje dla nowej kopii bazy danych, w tym inną warstwę usługi i ustawienia nadmiarowości magazynu kopii zapasowych. Domyślnie kopia bazy danych jest tworzona z tymi samymi ustawieniami co źródłowa baza danych.

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

usługi SQL Database

* SQL Managed Instance *

 

Azure SQL Managed Instance

Przegląd

W usłudze Azure SQL Managed Instance ta instrukcja służy do tworzenia bazy danych. Podczas tworzenia bazy danych w wystąpieniu zarządzanym należy określić nazwę i sortowanie bazy danych.

Składnia

Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.

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

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

Ważny

Aby dodać pliki lub ustawić zawieranie bazy danych w wystąpieniu zarządzanym, użyj instrukcji ALTER DATABASE.

W przypadku wystąpień zarządzanych SQL początkowy parametr MAXSIZE jest niejawnie ustawiony na bieżący rozmiar dysku i nie zmienia się automatycznie po rozszerzeniu rozmiaru dysku z witryny Azure Portal. Po rozszerzeniu dysku należy również rozszerzyć rozszerzenie MAXSIZE przy użyciu ALTER DATABASE, aby uniknąć błędów pełnych plików bazy danych.

Argumenty

database_name

Nazwa nowej bazy danych. Ta nazwa musi być unikatowa na serwerze SQL i być zgodna z regułami programu SQL Server dla identyfikatorów. Aby uzyskać więcej informacji, zobacz Identyfikatory.

Collation_name

Określa sortowanie domyślne dla bazy danych. Nazwa sortowania może być nazwą sortowania systemu Windows lub nazwą sortowania SQL. Jeśli nie zostanie określona, baza danych zostanie przypisana do sortowania domyślnego, które jest SQL_Latin1_General_CP1_CI_AS.

Aby uzyskać więcej informacji na temat nazw sortowania systemu Windows i SQL, COLLATE (Transact-SQL).

LEDGER = {ON | WYŁĄCZONE }

Po ustawieniu wartości na ONprogram tworzy bazę danych rejestru, w której jest chroniona integralność wszystkich danych użytkownika. W bazie danych rejestru można tworzyć tylko tabele rejestru. Wartość domyślna to OFF. Nie można zmienić wartości opcji LEDGER po utworzeniu bazy danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie bazy danych rejestru.

Uwagi

Bazy danych w usłudze Azure SQL Database mają kilka ustawień domyślnych ustawionych podczas tworzenia bazy danych. Aby uzyskać więcej informacji na temat tych ustawień domyślnych, zobacz listę wartości w DATABASEPROPERTYEX.

Ważny

Instrukcja CREATE DATABASE musi być jedyną instrukcją w partii Transact-SQL.

Poniżej przedstawiono CREATE DATABASE ograniczenia:

  • Nie można zdefiniować plików i grup plików.

  • WITHopcje nie są obsługiwane, z wyjątkiem WITH LEDGER.

    Napiwek

    Aby obejść ten problem, użyj ALTER DATABASE. po CREATE DATABASE ustawić opcje bazy danych i dodać pliki.

Uprawnienia

Aby utworzyć bazę danych, identyfikator logowania musi być jednym z następujących elementów:

  • Identyfikator logowania podmiotu zabezpieczeń na poziomie serwera
  • Administrator firmy Microsoft dla serwera logicznego na platformie Azure
  • Identyfikator logowania będący członkiem roli bazy danych dbcreator

Przykłady

Prosty przykład

Prosty przykład tworzenia bazy danych.

CREATE DATABASE TestDB1;

Tworzenie bazy danych rejestru

CREATE DATABASE MyLedgerDB WITH LEDGER = ON;

usługi SQL Database

usługi SQL Managed Instance

* Azure Synapse
Analiza *

 

Azure Synapse Analytics

Przegląd

W usłudze Azure Synapse ta instrukcja może być używana z serwerem usługi Azure SQL Database w celu utworzenia dedykowanej puli SQL. W przypadku tej instrukcji należy określić nazwę bazy danych, sortowanie, maksymalny rozmiar, edycję i cel usługi.

  • Funkcja CREATE DATABASE jest obsługiwana w przypadku autonomicznych dedykowanych pul SQL (dawniej SQL DW) przy użyciu poziomów usługi Gen2.
  • Funkcja CREATE DATABASE nie jest obsługiwana w przypadku dedykowanych pul SQL w obszarze roboczym usługi Azure Synapse Analytics. Zamiast tego użyć witryny Azure Portal.
  • Funkcja CREATE DATABASE jest obsługiwana w przypadku bezserwerowych pul SQL w usłudze Azure Synapse Analytics.

Składnia

Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.

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

Nazwa nowej bazy danych. Ta nazwa musi być unikatowa na serwerze SQL, który może hostować zarówno bazy danych w bazach danych Azure SQL Database, jak i Azure Synapse Analytics oraz być zgodny z regułami programu SQL Server dotyczącymi identyfikatorów. Aby uzyskać więcej informacji, zobacz Identyfikatory.

collation_name

Określa sortowanie domyślne dla bazy danych. Nazwa sortowania może być nazwą sortowania systemu Windows lub nazwą sortowania SQL. Jeśli nie zostanie określona, baza danych zostanie przypisana do sortowania domyślnego, które jest SQL_Latin1_General_CP1_CI_AS.

Aby uzyskać więcej informacji na temat nazw sortowania systemu Windows i SQL, zobacz COLLATE (Transact-SQL).

MAXSIZE

Wartość domyślna to 245 760 GB (240 TB).

Dotyczy: Zoptymalizowane pod kątem obliczeń Gen1

Maksymalny dozwolony rozmiar bazy danych. Baza danych nie może rosnąć poza maxSIZE.

Dotyczy: Zoptymalizowane pod kątem obliczeń Gen2

Maksymalny dozwolony rozmiar danych magazynu wierszy w bazie danych. Dane przechowywane w tabelach magazynu wierszy, magazynie różnicowym indeksu magazynu kolumn lub indeksie nieklastrowanym w klastrowanym indeksie magazynu kolumn nie mogą rosnąć poza maxSIZE. Dane skompresowane do formatu magazynu kolumn nie mają limitu rozmiaru i nie są ograniczone przez maxSIZE.

EDITION

Określa warstwę usługi bazy danych. W przypadku usługi Azure Synapse Analytics użyj datawarehouse.

SERVICE_OBJECTIVE

Określa rozmiar obliczeniowy (cel usługi). Poziomy usług dla gen2 są mierzone w jednostkach magazynu danych obliczeniowych (cDWU), na przykład DW2000c. Poziomy usługi Gen1 są mierzone w jednostkach DWU, na przykład DW2000. Aby uzyskać więcej informacji na temat celów usługi dla usługi Azure Synapse, zobacz Data Warehouse Units (DWU). Cele usługi Gen1 (nie są już wymienione) nie są już obsługiwane. Może zostać wyświetlony błąd: Azure SQL Data Warehouse Gen1 has been deprecated in this region. Please use SQL Analytics in Azure Synapse.

Uwagi

Użyj DATABASEPROPERTYEX, aby wyświetlić właściwości bazy danych.

Użyj ALTER DATABASE — Azure Synapse Analytics, aby później zmienić maksymalny rozmiar lub wartości celu usługi.

Usługa Azure Synapse jest ustawiona na COMPATIBILITY_LEVEL 130 i nie można jej zmienić. Aby uzyskać więcej informacji, zobacz Ulepszona wydajność zapytań z poziomem zgodności 130 w usłudze Azure SQL Database.

Uprawnienia

Wymagane uprawnienia:

  • Identyfikator logowania podmiotu zabezpieczeń na poziomie serwera utworzony przez proces aprowizacji lub
  • Członek roli bazy danych dbmanager.

Obsługa błędów

Jeśli rozmiar bazy danych osiągnie wartość MAXSIZE, zostanie wyświetlony kod błędu 40544. W takim przypadku nie można wstawiać i aktualizować danych ani tworzyć nowych obiektów (takich jak tabele, procedury składowane, widoki i funkcje). Nadal można odczytywać i usuwać dane, obcinać tabele, usuwać tabele i indeksy oraz ponownie kompilować indeksy. Następnie można zaktualizować wartość MAXSIZE do wartości większej niż bieżący rozmiar bazy danych lub usunąć niektóre dane, aby zwolnić miejsce do magazynowania. Zanim będzie można wstawić nowe dane, może wystąpić nawet piętnaście minut opóźnienia.

Ograniczenia

Aby utworzyć nową bazę danych, musisz mieć połączenie z bazą danych master.

Instrukcja CREATE DATABASE musi być jedyną instrukcją w partii Transact-SQL.

Nie można zmienić sortowania bazy danych po utworzeniu bazy danych.

Przykłady: Azure Synapse Analytics

A. Prosty przykład

Prosty przykład tworzenia autonomicznej dedykowanej puli SQL (dawniej SQL DW). Spowoduje to utworzenie bazy danych o najmniejszym maksymalnym rozmiarze (10 240 GB), domyślnym sortowaniu (SQL_Latin1_General_CP1_CI_AS) i najmniejszym celu usługi Gen2 (DW100c).

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

B. Tworzenie bazy danych magazynu danych z wszystkimi opcjami

Przykład tworzenia autonomicznej dedykowanej puli SQL o rozmiarze 10 terabajtów (dawniej SQL DW).

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

C. Prosty przykład w bezserwerowej puli SQL usługi Synapse Analytics

Spowoduje to utworzenie bazy danych w puli bezserwerowej, określając sortowanie (Latin1_General_100_CI_AS_KS_WS).

CREATE DATABASE TestDW COLLATE Latin1_General_100_CI_AS_KS_WS

usługi SQL Database

usługi SQL Managed Instance

* Platforma analizy
System (PDW) *

 

System platformy analizy

Przegląd

W systemie platformy analizy ta instrukcja służy do tworzenia nowej bazy danych na urządzeniu Systemu platformy analizy. Użyj tej instrukcji, aby utworzyć wszystkie pliki skojarzone z bazą danych urządzenia oraz ustawić maksymalny rozmiar i opcje automatycznego zwiększania dla tabel bazy danych i dziennika transakcji.

Składnia

Aby uzyskać więcej informacji na temat konwencji składni, zobacz Transact-SQL konwencje składni.

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

Nazwa nowej bazy danych. Aby uzyskać więcej informacji na temat dozwolonych nazw baz danych, zobacz "Reguły nazewnictwa obiektów" i "Nazwy zarezerwowanych baz danych" w dokumentacji produktu Analytics Platform System (PDW).

AUTOGROW = WŁĄCZONE | OD

Określa, czy parametry replicated_size, distributed_sizei log_size dla tej bazy danych będą automatycznie rosnąć w razie potrzeby poza określonymi rozmiarami. Wartość domyślna to OFF.

Jeśli funkcja AUTOGROW jest włączona, replicated_size, distributed_sizei log_size będą rosnąć zgodnie z wymaganiami (nie w blokach początkowego określonego rozmiaru) z każdą akcją wstawiania, aktualizowania lub innej akcji, która wymaga więcej miejsca do magazynowania niż została już przydzielona.

Jeśli funkcja AUTOGROW jest wyłączona, rozmiary nie będą automatycznie rosnąć. System platformy analizy (PDW) zwróci błąd podczas próby wykonania akcji wymagającej replicated_size, distributed_sizelub log_size, aby przekroczyć określoną wartość.

FUNKCJA AUTOGROW jest włączona dla wszystkich rozmiarów lub WYŁ. dla wszystkich rozmiarów. Na przykład nie można ustawić opcji AUTOGROW ON dla log_size, ale nie ustawić jej dla replicated_size.

replicated_size [ GB ]

Liczba dodatnia. Ustawia rozmiar (w liczbach całkowitych lub dziesiętnych) dla całkowitego miejsca przydzielonego do replikowanych tabel i odpowiadających im danych w każdym węźle obliczeniowym. Aby uzyskać minimalne i maksymalne wymagania dotyczące replicated_size, zobacz "Minimalne i maksymalne wartości" w dokumentacji produktu Analytics Platform System (PDW).

Jeśli funkcja AUTOGROW jest włączona, replikowane tabele będą mogły przekroczyć ten limit.

Jeśli funkcja AUTOGROW jest wyłączona, zostanie zwrócony błąd, jeśli użytkownik spróbuje utworzyć nową zreplikowaną tabelę, wstawić dane do istniejącej zreplikowanej tabeli lub zaktualizować istniejącą zreplikowaną tabelę w taki sposób, aby zwiększyć rozmiar poza replicated_size.

distributed_size [ GB ]

Liczba dodatnia. Rozmiar w gigabajtach całkowitych lub dziesiętnych dla całkowitego miejsca przydzielonego do tabel rozproszonych (i odpowiadających im danych) na urządzeniu. Aby uzyskać minimalne i maksymalne wymagania dotyczące distributed_size, zobacz "Minimalne i maksymalne wartości" w dokumentacji produktu Analytics Platform System (PDW).

Jeśli funkcja AUTOGROW jest włączona, tabele rozproszone będą mogły przekroczyć ten limit.

Jeśli funkcja AUTOGROW jest wyłączona, zostanie zwrócony błąd, jeśli użytkownik spróbuje utworzyć nową tabelę rozproszoną, wstawić dane do istniejącej tabeli rozproszonej lub zaktualizować istniejącą tabelę rozproszoną w taki sposób, aby zwiększyć rozmiar poza distributed_size.

log_size [ GB ]

Liczba dodatnia. Rozmiar (w liczbach całkowitych lub dziesiętnych) dla dziennika transakcji na urządzeniu.

Aby uzyskać minimalne i maksymalne wymagania dotyczące log_size, zobacz "Minimalne i maksymalne wartości" w dokumentacji produktu Analytics Platform System (PDW).

Jeśli funkcja AUTOGROW jest włączona, plik dziennika może przekroczyć ten limit. Użyj instrukcji DBCC SHRINKLOG (Azure Synapse Analytics), aby zmniejszyć rozmiar plików dziennika do ich oryginalnego rozmiaru.

Jeśli funkcja AUTOGROW jest wyłączona, zostanie zwrócony użytkownikowi błąd dla każdej akcji, która zwiększy rozmiar dziennika w pojedynczym węźle obliczeniowym poza log_size.

Uprawnienia

Wymaga uprawnienia CREATE ANY DATABASE w bazie danych master lub członkostwa w sysadmin stałej roli serwera.

W poniższym przykładzie przedstawiono uprawnienia do tworzenia bazy danych dla użytkownika bazy danych Fay.

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

Uwagi

Bazy danych są tworzone przy użyciu poziomu zgodności bazy danych 120, który jest poziomem zgodności dla programu SQL Server 2014 (12.x). Dzięki temu baza danych będzie mogła korzystać ze wszystkich funkcji programu SQL Server 2014 (12.x), z których korzysta pdW.

Ograniczenia i ograniczenia

Instrukcja CREATE DATABASE nie jest dozwolona w jawnej transakcji. Aby uzyskać więcej informacji, zobacz Statements.

Aby uzyskać informacje na temat minimalnych i maksymalnych ograniczeń dotyczących baz danych, zobacz "Minimalne i maksymalne wartości" w dokumentacji produktu Analytics Platform System (PDW).

Podczas tworzenia bazy danych musi być wystarczająca ilość wolnego miejsca w każdym węźle obliczeniowym, aby przydzielić łączną sumę następujących rozmiarów:

  • Baza danych programu SQL Server z tabelami o rozmiarze replicated_table_size.
  • Baza danych programu SQL Server z tabelami o rozmiarze (distributed_table_size / liczba węzłów obliczeniowych).
  • Program SQL Server rejestruje rozmiar (log_size / liczba węzłów obliczeniowych).

Blokowania

Pobiera udostępnioną blokadę obiektu DATABASE.

Metadane

Po pomyślnym wykonaniu tej operacji wpis dla tej bazy danych zostanie wyświetlony w widokach metadanych sys.databases i sys.objects.

Przykłady: Analytics Platform System (PDW)

A. Przykłady tworzenia podstawowej bazy danych

Poniższy przykład tworzy bazę danych mytest z alokacją magazynu 100 GB na węzeł obliczeniowy dla replikowanych tabel, 500 GB na urządzenie dla tabel rozproszonych i 100 GB na urządzenie dla dziennika transakcji. W tym przykładzie funkcja AUTOGROW jest domyślnie wyłączona.

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

Poniższy przykład tworzy bazę danych mytest z tymi samymi parametrami co powyżej, z tą różnicą, że funkcja AUTOGROW jest włączona. Dzięki temu baza danych może rosnąć poza określonymi parametrami rozmiaru.

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

B. Tworzenie bazy danych z częściowymi rozmiarami gigabajtów

Poniższy przykład tworzy bazę danych mytest, z wyłączoną funkcją AUTOGROW, alokacją magazynu 1,5 GB na węzeł obliczeniowy dla zreplikowanych tabel, 5,25 GB na urządzenie dla tabel rozproszonych i 10 GB na urządzenie dla dziennika transakcji.

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