Udostępnij za pomocą


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
}

Utwórz migawkę bazy danych:

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

Argumenty

database_name

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 nowsze wersje

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. ON jest wymagane, gdy następuje rozdzielana przecinkami lista <filespec> elementów, które definiują pliki danych dla podstawowej grupy plików. Po liście plików w podstawowej grupie plików może następować opcjonalna, rozdzielana przecinkami lista <filegroup> elementów definiujących grupy plików użytkowników i ich pliki.

PODSTAWOWY

Określa, że skojarzona <filespec> lista definiuje plik podstawowy. Pierwszy plik określony we wpisie <filespec> w podstawowej grupie plików staje się plikiem podstawowym. Baza danych może mieć tylko jeden plik podstawowy. Aby uzyskać więcej informacji, zobacz Pliki bazy danych i grupy plików.

Jeśli PRIMARY nie zostanie określony, pierwszy plik wymieniony w instrukcji CREATE DATABASE stanie się plikiem podstawowym.

LOGOWANIE

Określa, że pliki dysku używane do przechowywania dziennika bazy danych, plików dziennika są jawnie zdefiniowane. LOG ON po nim następuje rozdzielana przecinkami lista <filespec> elementów, które definiują pliki dziennika. Jeśli LOG ON nie zostanie określony, 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, co jest większe. Ten plik jest umieszczany w domyślnej lokalizacji pliku dziennika. Aby uzyskać informacje o tej lokalizacji, zobacz Wyświetlanie lub zmienianie domyślnych lokalizacji dla plików danych i dzienników.

LOG ON Nie można określić 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 or FOR ATTACH_REBUILD_LOG . Aby uzyskać informacje na temat zmieniania sortowania dołączonej bazy danych, zobacz Ustawianie lub zmienianie sortowania bazy danych.

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 wersje

    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 nowsze wersje

    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 CONTAINMENT ustawiono wartość PARTIAL. Jeśli CONTAINMENT ustawiono wartość NONE, wystąpią błędy.

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

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

Zobacz Konfiguracja serwera: domyślny język pełnotekstowy , aby uzyskać pełny opis tej opcji.

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

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

Zobacz Konfiguracja serwera: język domyślny , aby uzyskać pełny opis tej opcji.

NESTED_TRIGGERS = { OFF | WŁ. }

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

Zobacz Konfiguracja serwera: zagnieżdżone wyzwalacze , aby uzyskać pełny opis tej opcji.

TRANSFORM_NOISE_WORDS = { OFF | WŁ. }

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

Zobacz Konfiguracja serwera: przekształcanie wyrazów szumu , aby uzyskać pełny opis tej opcji.

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

Cztery cyfry reprezentujące rok. Wartość domyślna to 2049. Zobacz Konfiguracja serwera: dwucyfrowe odcięcie roku , aby uzyskać pełny opis tej opcji.

DB_CHAINING { OFF | WŁ. }

Gdy ON zostanie określony, baza danych może być źródłem lub elementem docelowym łańcucha własności między bazami danych.

Gdy OFFbaza danych nie może uczestniczyć w łańcuchu własności między bazami danych. Wartość domyślna to OFF.

Ważny

Wystąpienie programu SQL Server rozpoznaje to ustawienie, gdy opcja serwera łańcucha własności między bazami danych wynosi 0 (OFF). Gdy łańcuch własności między bazami danych wynosi 1 (ON), 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 . DB_CHAINING Nie można ustawić opcji dla tych systemowych baz danych: master, model, tempdb.

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

Po ON określeniu 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.

Gdy OFFmoduły bazy danych w kontekście personifikacji nie mogą uzyskać dostępu do zasobów spoza bazy danych. Wartość domyślna to OFF.

TRUSTWORTHY jest ustawiana na OFF zawsze, gdy baza danych jest dołączona.

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

PERSISTENT_LOG_BUFFER = WŁĄCZONY ( DIRECTORY_NAME = 'directory_name' )

Dotyczy: SQL Server 2017 (14.x) i nowsze wersje

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.

REJESTR = { 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 LEDGER opcji 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ć wpis określający <filespec> plik podstawowy. Jedynymi innymi <filespec> wymaganymi wpisami są wpisy dotyczące plików, które mają inną ścieżkę niż w momencie pierwszego utworzenia lub ostatniego dołączenia bazy danych. Dla tych plików należy określić wpis.<filespec>

FOR ATTACH Wymaga:

  • 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, są dołączane 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 Przykłady.

Dołączenie bazy danych, która zawiera opcję FILESTREAM "Nazwa katalogu", monituje program SQL Server o sprawdzenie, czy Database_Directory nazwa jest unikatowa. Jeśli tak nie jest, ATTACH operacja 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.

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

FOR ATTACH może określić RESTRICTED_USER opcję. RESTRICTED_USER umożliwia łączenie się 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 korzysta z Service Broker, użyj klauzuli WITH <service_broker_option> in ur FOR ATTACH :

Steruje dostarczaniem komunikatów usługi Service Broker i identyfikatorem usługi Service Broker dla bazy danych. Opcje Service Broker można określić tylko wtedy, gdy klauzula jest używana 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 Kompresja danych.

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 na temat 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 TRUSTWORTHY i DB_CHAINING nie mają wpływu podczas dołączania bazy danych.

DLA 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 określający <filespec> 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 Wyświetlanie lub zmienianie domyślnych lokalizacji dla plików danych i dzienników.

Nuta

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

FOR ATTACH_REBUILD_LOG wymaga następujących warunków:

  • 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 natychmiast po zakończeniu operacji. Aby uzyskać więcej informacji, zobacz BACKUP.

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

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

Aby uzyskać więcej informacji na temat dołączania i odłączania baz danych, zobacz Odłączanie i dołączanie bazy danych (SQL Server).

<Filespec>

Steruje właściwościami pliku.

LOGICAL_FILE_NAME NAZW

Określa nazwę logiczną pliku. NAME jest wymagany, gdy FILENAME jest określony, z wyjątkiem sytuacji, gdy określono jedną z FOR ATTACH klauzul. Nie FILESTREAM można nazwać PRIMARYgrupy plików .

  • logical_file_name

    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

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

    SIZE, MAXSIZE, a FILEGROWTH parametry można ustawić, gdy dla pliku zostanie określona ścieżka 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 (12.x) 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 odwołuje się do ścieżki, FILENAME 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, musi istnieć przed uruchomieniem C:\MyFilespolecenia , ALTER DATABASE ale MyFilestreamData folder 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.

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

  • rozmiar

    Początkowy rozmiar pliku.

    Jeśli rozmiar nie zostanie podany dla pliku podstawowego, aparat bazy danych używa rozmiaru pliku podstawowego model w bazie danych. 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 o rozmiarze 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ż 2147 483 647 użyj większych jednostek.

MAX_SIZE MAXSIZE

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

  • max_size

    Maksymalny rozmiar 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 pliku nie może przekraczać MAXSIZE ustawienia. FILEGROWTH nie można określić, gdy os_file_name jest określona jako ścieżka UNC. FILEGROWTH nie ma zastosowania do grupy plików FILESTREAM.

  • growth_increment

    Ilość miejsca dodanego do pliku za każdym razem, gdy jest wymagane nowe miejsce.

    Wartość można określić w KB, , MB, GB, TBlub procent (%). Jeśli liczba jest określona bez sufiksu KB, MBlub % , wartość domyślna to MB. Po % określeniu rozmiar przyrostu jest określony procent 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 FILEGROWTH nie zostanie określony, 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

Nazwa logiczna grupy plików.

  • filegroup_name

    filegroup_name musi być unikatowa w bazie danych i nie może być nazwami PRIMARY dostarczonymi przez system 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 wersje

    Określa, że grupa plików przechowuje memory_optimized danych w systemie plików. Aby uzyskać więcej informacji, zobacz In-Memory OMÓWIENIE OLTP i scenariusze użycia. Tylko jedna MEMORY_OPTIMIZED_DATA grupa plików 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

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 dla migawek bazy danych. Grupy plików FILESTREAM nie są obsługiwane przez migawki bazy danych. Jeśli plik danych FILESTREAM jest zawarty w klauzuli, instrukcja zakończy się niepowodzeniem CREATE DATABASE ON i zostanie zgłoszony błąd.

Opisy NAME i FILENAME ich wartości można znaleźć w opisach równoważnych <filespec> wartości.

Nuta

Podczas tworzenia migawki bazy danych inne <filespec> 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.

W programie SQL Server 2017 (14.x) i starszych wersjach ź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 (15.x).

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 zatwierdzeń (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 czynności:

  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
  • Strumień plików
  • 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 baz 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 CREATE DATABASE bazy danych instrukcja nie może odwoływać się do plików dziennika, plików trybu 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 polecenia DROP DATABASE.

Aby uzyskać więcej informacji, zobacz Migawki bazy danych (SQL Server) i Tworzenie migawki bazy danych.

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 (OPCJE ALTER DATABASE SET).

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 model bazie danych nie ma wpływu na istniejące bazy danych. Jeśli funkcja 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 danych i plików dziennika

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

Odp. 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 zawiera żadnych <filespec> elementów, podstawowy plik bazy danych ma rozmiar model pliku podstawowego bazy danych. Dziennik transakcji jest ustawiony na większe z następujących wartości: 512 KB lub 25% rozmiar pliku danych podstawowych. Ponieważ 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 SIZESales_dat dla pliku, 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 = 5 MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5 MB
);
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 = 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. 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 = 5 MB,
    MAXSIZE = 25 MB,
    FILEGROWTH = 5 MB
);
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 uległa zmianie od czasu ich utworzenia, w klauzuli FOR ATTACH należy określić tylko plik podstawowy. Począwszy od programu SQL Server 2005 (9.x), wszystkie pliki pełnotekstowe będące częścią dołączanej bazy danych są dołączane do tej bazy danych.

USE master;
GO

EXECUTE 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 AdventureWorks2025. 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
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

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

* Baza danych SQL *

usługi SQL Managed Instance

Baza danych SQL

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

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 bazy danych.

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 domyślnego sortowania, czyli SQL_Latin1_General_CP1_CI_AS.

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

CATALOG_COLLATION

Określa sortowanie domyślne wykazu metadanych. CATALOG_COLLATION Argument 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 nie jest określone.

DATABASE_DEFAULT Określa, że wykaz metadanych używany dla widoków systemowych i tabel systemowych mają być sortowane w celu dopasowania sortowania dla 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żywa domyślnego 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 jest 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' | "GEOZONE" }

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.

Służy GEOZONE do magazynu nadmiarowego strefy geograficznej. Magazyn nadmiarowy strefy geograficznej (GZRS) zapewnia najwyższy poziom ochrony przed awariami strefowymi, a także awariami regionalnymi dla dowolnego obciążenia.

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

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

REJESTR = { 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 LEDGER opcji po utworzeniu bazy danych. Aby uzyskać więcej informacji, zobacz Konfigurowanie bazy danych rejestru.

MAKSYMALNY ROZMIAR

Określa maksymalny rozmiar bazy danych. MAXSIZE musi być prawidłowy dla określonej EDITION (warstwy usługi).

Poniżej przedstawiono obsługiwane MAXSIZE wartości 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 musisz ustawiać maksymalnego rozmiaru.

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

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

1 P11 i P15 umożliwiają 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 MAXSIZE Premium 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 dla pojedynczych baz danych przy użyciu modelu zakupów jednostek DTU — Azure SQL Database.

Wartość MAXSIZE 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".

Do argumentów i MAXSIZE mają zastosowanie EDITION następujące reguły:

  • Jeśli EDITION zostanie określony, ale MAXSIZE nie zostanie określony, zostanie użyta wartość domyślna dla wersji. Jeśli na przykład EDITION parametr jest ustawiony na Wartość Standardowa i MAXSIZE nie zostanie określony, wartość MAX'SIZE zostanie automatycznie ustawiona na 250 MB.

  • Jeśli ani nie MAXSIZEEDITION zostanie określona, EDITION parametr jest ustawiony na wartość "OgólnePurpose" i MAXSIZE ma ustawioną wartość 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.

    • 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 wartość nie jest obsługiwana przez usługę EDITION, zostanie wyświetlony błąd. Aby zmienić wartość z jednej warstwy SERVICE_OBJECTIVE na inną (na przykład z S1 na P1), należy również zmienić EDITION wartość. 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 dla bazy danych ELASTIC_POOL wartość i podaj nazwę puli. Aby uzyskać więcej informacji, zobacz Elastyczne pule ułatwiają zarządzanie wieloma bazami danych i skalowanie ich w usłudze Azure SQL Database.

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. Może wystąpić nawet 15-minutowe opóźnienie, zanim będzie można wprowadzić nowe dane.

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 SQL Database: wykonaj zapytanie dotyczące percentage_complete kolumn lub replication_state_desc w dm_database_copies lub kolumny state 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.

Po pomyślnym zakończeniu procesu kopiowania docelowa baza danych jest transakcyjnie spójna ze ź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 bazy danych.
  • 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 Kopiowanie transakcyjnie spójnej kopii bazy danych w usłudze Azure SQL Database.

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

Przykład podstawowy

Podstawowy przykład tworzenia bazy danych.

CREATE DATABASE TestDB1;

Podstawowy przykład z wersją

Podstawowy 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 <database>.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 <database>.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) używają 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

* Zarządzana instancja SQL *

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 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ć o MAXSIZEalter 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 bazy danych.

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, czyli SQL_Latin1_General_CP1_CI_AS.

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

REJESTR = { 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 LEDGER opcji 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, login musi być jednym z następujących typów podmiotów zabezpieczeń:

  • Identyfikator logowania podmiotu zabezpieczeń na poziomie serwera
  • Administrator firmy Microsoft dla serwera logicznego na platformie Azure
  • Identyfikator logowania, który jest członkiem roli bazy danych dbcreator

Przykłady

Przykład podstawowy

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

  • CREATE DATABASE Jest obsługiwany w przypadku autonomicznych dedykowanych pul SQL (dawniej SQL DW) przy użyciu poziomów usługi Gen2.
  • 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.
  • CREATE DATABASE Jest obsługiwany 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 bazy danych.

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, czyli SQL_Latin1_General_CP1_CI_AS.

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

MAKSYMALNY ROZMIAR

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

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 wartość i nie można jej zmienić. Aby uzyskać więcej informacji, zobacz ALTER DATABASE compatibility level (Poziom zgodności ALTER 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 MAXSIZEwartość , program SQL Server zgłasza 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ć 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

Odp. Przykład podstawowy

Podstawowy 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. Podstawowy 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 = { ON | WYŁ. }

Określa, czy parametry replicated_size, distributed_size i log_size automatycznie rosną w razie potrzeby poza ich określone rozmiary. Wartość domyślna to OFF.

Jeśli AUTOGROW wartość to ON, replicated_size, distributed_size i log_size rosną zgodnie z wymaganiami przy użyciu każdej akcji wstawiania, aktualizowania lub innego działania, które wymagają więcej miejsca do magazynowania, niż zostało już przydzielone.

Jeśli AUTOGROW ma wartość OFF, rozmiary nie rosną automatycznie. System platformy analizy (PDW) zwraca błąd podczas próby wykonania akcji wymagającej replicated_size, distributed_size lub log_size , aby przekroczyć określoną wartość.

AUTOGROW jest przeznaczony ON dla wszystkich rozmiarów lub OFF dla wszystkich rozmiarów. Na przykład nie można ustawić AUTOGROW ON dla log_size, ale nie ustawić go 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 AUTOGROW wartość to ON, zreplikowane tabele mogą przekroczyć ten limit.

Jeśli AUTOGROW jest OFFto , zwracany jest błąd, jeśli użytkownik próbuje utworzyć nową zreplikowaną tabelę, wstawić dane do istniejącej zreplikowanej tabeli lub zaktualizować istniejącą zreplikowaną tabelę w sposób, który zwiększy rozmiar poza replicated_size.

distributed_size [ PL ]

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 AUTOGROW wartość to ON, tabele rozproszone mogą przekraczać ten limit.

Jeśli AUTOGROW jest OFFto , zwracany jest błąd, jeśli użytkownik próbuje utworzyć nową tabelę rozproszoną, wstawić dane do istniejącej tabeli rozproszonej lub zaktualizować istniejącą tabelę rozproszoną w sposób, który 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 AUTOGROW ma ONwartość , plik dziennika może przekroczyć ten limit. Użyj instrukcji DBCC SHRINKLOG — Analytics Platform System (PDW), aby zmniejszyć rozmiar plików dziennika do ich oryginalnego rozmiaru.

Jeśli AUTOGROW jest OFFto , zwracany jest błąd do użytkownika dla każdej akcji, która zwiększyłaby 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 może korzystać ze wszystkich funkcji programu SQL Server 2014 (12.x), z których korzysta pdW.

Ograniczenia

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

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)

Odp. 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 AUTOGROW jest domyślnie wyłączona.

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

W poniższym przykładzie tworzona jest baza danych mytest z tymi samymi parametrami, z tą różnicą, że 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 mytestz AUTOGROW wyłączoną 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);