CREATE DATABASE (Transact-SQL)

Tworzy nową bazę danych i pliki używane do przechowywania bazy danych, tworzy migawka bazy danych lub dołącza bazy danych z plików odłączonego utworzone wcześniej bazy danych.

Topic link iconKonwencje składni języka Transact-SQL

CREATE DATABASE database_name 
    [ ON 
        [ PRIMARY ] [ <filespec> [ ,...n ] 
        [ , <filegroup> [ ,...n ] ] 
    [ LOG ON { <filespec> [ ,...n ] } ] 
    ] 
    [ COLLATE collation_name ]
    [ WITH <external_access_option> ]
]
[;]

To attach a database
CREATE DATABASE database_name 
    ON <filespec> [ ,...n ] 
    FOR { ATTACH [ WITH <service_broker_option> ]
        | ATTACH_REBUILD_LOG }
[;]

<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 | % ] ]
) [ ,...n ]
}

<filegroup> ::= 
{
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
    <filespec> [ ,...n ]
}

<external_access_option> ::=
{
  [ DB_CHAINING { ON | OFF } ]
  [ , TRUSTWORTHY { ON | OFF } ]
}
<service_broker_option> ::=
{
    ENABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS
}

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

Argumenty

  • database_name
    To nazwa nowej bazy danych.Nazwy bazy danych musi być unikatowa w obrębie wystąpienie SQL Server są zgodne z zasadami identyfikatory.

    database_name może zawierać maksymalnie 128 znaków, o ile nie określono nazwa logiczna dla pliku dziennika.Jeśli nazwa pliku logicznego dziennik nie zostanie określona, SQL Server generuje logical_file_name oraz os_file_name za pomocą dołączania sufiksów do dziennika database_name. Ogranicza to database_name do znaków 123 tak, że nazwa pliku logicznego, generowany jest nie więcej niż 128 znaków.

    Jeśli nazwa pliku danych nie zostanie określona, SQL Server używa database_name w obu logical_file_name i jak os_file_name.

  • DALEJ
    Określa, że plików dysku, używane do przechowywania danych części bazy danych, pliki danych są jawnie zdefiniowane.WŁĄCZONE jest wymagany w przypadku, gdy następuje lista rozdzielanych przecinkami <określenie_pliku> elementów, które definiują plików danych w podstawowym grupa plików. Na liście plików w podstawowym grupa plików może następować jest opcjonalne, rozdzielana przecinkami lista <grupa plików> elementów, które definiują filegroups użytkowników i ich plików.

  • PODSTAWOWY
    Określa, że skojarzonym <określenie_pliku> Lista określa pliku podstawowego. Pierwszy plik określony w <określenie_pliku> wpis w podstawowym grupa plików staje się plikiem podstawowym. Baza danych może mieć tylko jeden podstawowy plik.Aby uzyskać więcej informacji zobaczPliki i architektura Filegroups.

    Jeżeli nie określono PRIMARY, pierwszego pliku wymienione w instrukcja CREATE DATABASE staje się pliku podstawowego.

  • W DZIENNIKU
    Określa, że plików dysku, używane do przechowywania w dzienniku bazy danych, pliki dziennika są jawnie zdefiniowane.LOG ON następuje lista rozdzielanych przecinkami <określenie_pliku> elementów, które definiują plików dziennika. Jeżeli nie określono LOG ON, jeden plik dziennika jest tworzony automatycznie, o rozmiarze, który wynosi 25 procent sumy rozmiarów plików danych do bazy danych lub 512 KB, zależnie od tego, który jest większy.WŁ LOG nie można określić w migawka bazy danych.

  • collation_name SORTOWANIE
    Określa domyślny sortowanie dla bazy danych.Nazwa sortowanie może być nazwę sortowanie systemu Windows lub nazwę sortowanie programu SQL.Jeśli nie zostanie określony, baza danych jest przypisany domyślnym sortowaniem wystąpienie SQL Server. Nazwa sortowanie nie można określić w migawka bazy danych.

    Nie można określić nazwę sortowanie z klauzul do DOŁĄCZENIA lub ATTACH_REBUILD_LOG FOR.Aby uzyskać informacje na temat zmiany sortowanie bazy danych dołączone odwiedź witrynę to Witryny firmy Microsoft w sieci Web.

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

  • DO DOŁĄCZANIA
    Określa, że baza danych jest tworzony przez dołączenie istniejącego zestaw plików systemu operacyjnego.Musi istnieć <określenie_pliku> wpis, który określa podstawowy plik. Jedynym innym <określenie_pliku> wpisy wymagane są te, dla wszystkich plików, które mają inną ścieżka z po raz pierwszy w bazie danych tworzone lub ostatnio podłączone. A <określenie_pliku> Wpis musi być podany dla tych plików.

    FOR dołączanie wymaga następujących czynności:

    • Wszystkie pliki danych (MDF i NDF) musi być dostępny.

    • Jeśli istnieje wiele plików dziennika, należy wszystkie one dostępne.

    Jeżeli bazę danych do odczytu/zapisu w jednym pliku dziennika, który jest aktualnie niedostępny i bazy danych został zamknięty bez użytkowników i otwartych transakcji, przed wykonaniem operacji dołączania, automatycznie DOŁĄCZAĆ do odbudowania pliku dziennika i aktualizuje pliku podstawowego.Z drugiej strony tylko do odczytu bazy danych, w dzienniku nie wymagają przebudowania, ponieważ nie można zaktualizować pliku podstawowego.Dlatego podczas dołączania bazy danych tylko do odczytu którego dziennik jest niedostępny, należy podać pliki dzienników lub pliki w klauzula do DOŁĄCZENIA.

    Uwaga

    Baza danych utworzona w nowszej wersja programu SQL Server Nie można dołączyć we wcześniejszych wersjach. The source database must be at least version 80 (SQL Server 2000) to attach to SQL Server 2008.SQL Server 2000 or SQL Server 2005 databases that have a compatibility level less than 80 will be set to compatibility 80 when they are attached.

    W SQL Server, wszystkie pliki pełnego tekstu, które są częścią bazy danych, który jest dołączany jest dołączana z bazą danych. Aby określić nową ścieżka katalogu pełnego tekstu, określ nową lokalizację bez nazwy pliku systemu operacyjnego pełnego tekstu.Aby uzyskać więcej informacji zobacz sekcję przykłady.

    Nie można określić na dołączanie na migawka bazy danych.

    Security noteSecurity Note:

    Firma Microsoft zaleca, aby bazy danych nie dołączyć się z nieznanych lub niezaufanych źródeł.Takie bazy danych może zawierać złośliwy kod, który może być wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub struktury fizycznej bazy danych. Aby korzystać z bazy danych z nieznanych lub niepewnych urządzenie źródłowe, uruchamianie DBCC CHECKDB w bazie danych na serwerze nonproduction i również sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

    Aby uzyskać więcej informacji na temat podłączania i odłączanie baz danych zobacz Odłączanie i dołączanie bazy danych.

    Uwaga

    Jeśli korzysta się z bazą danych Service Broker, zobacz też <service_broker_option>.

    Aby uzyskać informacje dotyczące uprawnień, ustawianych za każdym razem, gdy baza danych jest odłączony i dołączony zobacz Securing Data and Log Files.

    Po dołączeniu zreplikowanej bazy danych, które zostały skopiowane zamiast są odłączone, należy wziąć pod uwagę następujące kwestie:

    • Jeśli baza danych zostanie dołączony do tego samego wystąpienie serwera i wersja, co dla pierwotnej bazy danych, wymagane są nie dodatkowe czynności.

    • Jeśli baza danych zostanie dołączona do tego samego wystąpienie serwera, ale przy użyciu uaktualnionej wersja, należy wykonać sp_vupgrade_replication replikacja po wykonaniu operacji dołączania uaktualnienie zostało ukończone.

    • Po dołączeniu bazy danych do wystąpienie inny serwer, niezależnie od wersja, należy wykonać sp_removedbreplication usunąć replikacja po wykonaniu operacji dołączania zostało zakończone.

    Uwaga

    Dołączanie współpracuje z vardecimal format przechowywania, ale SQL Server Database Engine musi zostać uaktualniony do co najmniej SQL Server 2005 Dodatek usługa Pack 2. Nie można dołączyć bazy danych przy użyciu formatu magazynu vardecimal do wcześniejszej wersja programu SQL Server. Aby uzyskać więcej informacji na temat vardecimal format przechowywania, zobacz Przechowywanie danych dziesiętny jako zmienna długość.

    Aby uzyskać informacje dotyczące sposobu uaktualniania bazy danych za pomocą dołączania, zobacz Jak Uaktualnianie bazy danych za pomocą Odłącz i Dołącz (języka Transact-SQL).

  • DLA ATTACH_REBUILD_LOG
    Określa, że baza danych jest tworzony przez dołączenie istniejącego zestaw plików systemu operacyjnego.Ta opcja jest ograniczone do odczytu i zapisu bazy danych.Jeśli brakuje jednego lub większej liczby plików dziennik transakcji, plik dziennika jest zbudowane ponownie.Musi istnieć <określenie_pliku> wpis określający pliku podstawowego.

    Uwaga

    Jeśli pliki dziennika są dostępne, Database Engine użyje tych plików zamiast przebudowywanie plików dziennika.

    FOR ATTACH_REBUILD_LOG wymaga następujących czynności:

    • Czystego zamknięcia bazy danych.

    • Wszystkie pliki danych (MDF i NDF) musi być dostępny.

    Important noteImportant Note:

    Ta operacja spowoduje przerwanie dziennik kopia zapasowa łańcucha.Firma Microsoft zaleca, aby wykonać pełną kopię zapasową bazy danych można wykonać po zakończeniu operacji.Aby uzyskać więcej informacji zobaczBACKUP (Transact-SQL).

    Zazwyczaj ATTACH_REBUILD_LOG na jest używane podczas kopiowania odczytu i zapisu bazy danych z dużego dziennika do innego serwera, w którym kopia będzie używany głównie lub tylko dla operacji odczytu i dlatego wymaga mniej miejsca w dzienniku od oryginalnej bazy danych.

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

    Aby uzyskać więcej informacji na temat podłączania i odłączanie baz danych zobacz Odłączanie i dołączanie bazy danych.

  • <określenie_pliku>
    Określa właściwości pliku.

  • Nazwa logical_file_name
    Określa logiczną nazwę dla pliku.Nazwa jest wymagana, jeśli FILENAME jest określony, chyba że podczas określania jednego z klauzul do DOŁĄCZENIA.Nie może mieć nazwę grupa plików FILESTREAM PRIMARY.

    • logical_file_name
      Is the logical name used in SQL Server when referencing the file.Logical_file_name must be unique in the database and comply with the rules for identifiers.Nazwa może być znak Unicode stały lub identyfikator regularne lub rozdzielanych.
  • {FILENAME**"os_file_name'** | "filestream_path' }
    Określa nazwę pliku (fizycznego) systemu operacyjnego.

    • 'os_file_name'
      Czy ścieżka i nazwę używana przez system operacyjny, podczas tworzenia pliku.Plik musi znajdować się na jednej z następujących urządzeń: lokalny serwer, na których SQL Server zostanie zainstalowany, Storage Area Network [SAN] lub sieci protokołu iSCSI. Określona ścieżka musi istnieć przed wykonaniem instrukcja CREATE DATABASE.Aby uzyskać więcej informacji zobacz „ baza danych plików i Filegroups"w sekcji Uwagi.

      Nie zestaw parametry SIZE, MAXSIZE i FILEGROWTH, gdy ścieżka UNC jest określony dla pliku.

      Jeśli plik znajduje się na partycji raw os_file_name należy określić tylko literę dysku partycja raw. Tylko jeden plik danych mogą być tworzone na każdej partycji raw.

      Pliki danych nie powinny być traktowane w systemach skompresowanych plików, chyba że są to pliki pomocnicze tylko do odczytu lub baza danych jest tylko do odczytu.Pliki dziennika nigdy nie powinny być traktowane w systemach plików skompresowanych.Aby uzyskać więcej informacji zobaczRead-Only Filegroups and Compression.

    • 'filestream_path'
      Dla FILESTREAM grupa plików FILENAME odwołuje się do ścieżka, w którym będą przechowywane dane FILESTREAM.Ścieżka do folderu ostatniego musi istnieć, a ostatni folderu nie musi istnieć.Na przykład jeśli określisz ścieżka C:\MyFiles\MyFilestreamData C:\MyFiles muszą istnieć przed uruchomieniem ALTER DATABASE, ale nie musi istnieć folder MyFilestreamData.

      (grupa plików i plików<filespec>) muszą być utworzone w tym samym sprawozdaniu. Może istnieć tylko jeden plik <filespec>, dla FILESTREAM grupa plików.

      Właściwości SIZE, MAXSIZE i FILEGROWTH nie dotyczą grupa plików FILESTREAM.

  • SIZE size
    Określa rozmiar pliku.

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

    • size
      To początkowy rozmiar pliku.

      Kiedy size nie podano pliku podstawowego Database Engine używany jest rozmiar pliku podstawowego w bazie danych modelu. Jeśli zostanie użyty plik zapasowy danych lub pliku dziennika, ale size nie określono pliku, Database Engine powoduje, że plik 1 MB. Określony plik podstawowy rozmiar musi być przynajmniej tak duży, jak podstawowy plik baza danych modelu.

      Można użyć kilobajtów (KB), megabajt (MB), gigabajta (GB) lub sufiksy terabyte (TB).Wartość domyślna to MB.Specify a whole number; do not include a decimal.Size is an integer value.W przypadku wartości większe niż 2 147 483 647 za pomocą większych jednostek.

  • MAXSIZE max_size
    Określa, do którego plik maksymalny rozmiar.MAXSIZE nie można określić, kiedy os_file_name jest określony jako ścieżka UNC. MAXSIZE nie ma zastosowania do grupa plików FILESTREAM.

    • max_size
      Jest to rozmiar maksymalny.Sufiksy KB, MB, GB i TB mogą być używane.Wartość domyślna to MB.Określ liczbę całkowitą, nie należy dołączać ułamek dziesiętny.If max_size is not specified, the file grows until the disk is full.Max_size is an integer value.W przypadku wartości większe niż 2 147 483 647 za pomocą większych jednostek.
  • NIEOGRANICZONY
    Określa, że w pliku powiększa się, aż dysk jest zapełniony.W SQL Server, plik dziennika z nieograniczonej wzrostu ma maksymalny rozmiar 2 TB i plik danych został maksymalny rozmiar 16 TB.

  • FILEGROWTH growth_increment
    Określa przyrost automatyczny rozmiaru pliku.Ustawienie FILEGROWTH w pliku nie może być większa niż ustawienie MAXSIZE.FILEGROWTH nie można określić, kiedy os_file_name jest określony jako ścieżka UNC. FILEGROWTH nie ma zastosowania do grupa plików FILESTREAM.

    • growth_increment
      Ilość miejsca na dodane do pliku co czas wymagany jest nowy obszar.

      Wartość można określić w MEGABAJTACH, KB, GB, TB lub procentu (%).Jeśli liczba jest określona bez MB, KB lub % sufiksu, wartość domyślna to MB.Jeśli określono %, rozmiar przyrostu przyrostu jest określona w procentach rozmiar pliku w czasie występuje wartość przyrostu.Określony rozmiar jest zaokrąglana do najbliższej 64 KB.

      Wartość 0 wskazuje, że automatyczne wzrostu jest wyłączone i dodatkowy obszar, nie jest dozwolone.

      Jeżeli nie określono FILEGROWTH, wartością domyślną jest 1 MB dla plików danych i 10 % plików dziennika, a wartość minimalna to 64 KB.

      Uwaga

      W SQL Server, przyrost rozmiaru domyślnego dla plików danych zmienił się od 10 % 1 MB. Domyślny plik dziennika o 10 % pozostaje bez zmian.

  • <grupa plików>
    Określa grupa plików właściwości.Grupa plików nie można określić w migawka bazy danych.

  • grupa plików filegroup_name
    To nazwa logiczna grupa plików,.

    • filegroup_name
      filegroup_name musi być unikatowa w bazie danych i nie mogą być dostarczone przez system nazwy PRIMARY i PRIMARY_LOG.Nazwa może być znak Unicode stały lub identyfikator regularne lub rozdzielanych.Nazwa musi być zgodne z zasadami identyfikatory.

    • ZAWIERA FILESTREAM
      Określa, że grupa plików, w przechowuje FILESTREAM binarne dużych obiektów (bloków BLOB) w systemie plików.

    • WARTOŚĆ DOMYŚLNA
      Określa grupa plików domyślnych w bazie danych jest nazwaną grupa plików.

  • <external_access_option>
    Steruje dostępem z zewnątrz do i z bazy danych.

    • DB_CHAINING {ON | WYŁĄCZANIE }
      Jeżeli określono wartość ON, baza danych może być urządzenie źródłowe lub docelowy łańcuch własności bazy danych między.

      Kiedy OFF, baza danych nie może uczestniczyć w międzybazowy łańcuch własności.Wartością domyślną jest OFF.

      Important noteImportant Note:

      Wystąpienie SQL Server Spowoduje to ustawienie jest rozpoznawane podczas krzyżowego db własność łańcucha serwera opcji wynosi 0 (OFF). Tworzenie łańcucha własności innej DB, jeśli jest 1 (ON) wszystkich użytkowników DB może uczestniczyć w łańcuchy własność DB między, niezależnie od wartości tej opcji.Ta opcja jest zestaw przy użyciu sp_configure.

      Aby zestaw ta opcja wymaga członkostwo w roli sysadmin stałych serwera.W tych nie zestaw opcję DB_CHAINING bazy danych systemu: model główny, tempdb.

      Aby uzyskać więcej informacji zobacz Ownership Chains.

    • Godne zaufania {ON | WYŁĄCZANIE }
      Po określeniu ON moduły bazy danych (na przykład widoki, funkcje zdefiniowane przez użytkownika lub procedury przechowywane), które personifikacji kontekstu mogą uzyskać dostęp do zasobów poza bazą danych.

      Kiedy OFF, moduły bazy danych w kontekście personifikacji nie dostęp do zasobów poza bazą danych.Wartością domyślną jest OFF.

      Jest TRUSTWORTHY zestaw do OFF za każdym razem, gdy baza danych jest podłączony.

      Domyślnie wszystkie systemu bazy danych z bazy danych msdb mają TRUSTWORTHY zestaw na OFF.Nie można zmienić wartości dla modelu i tempdb baz danych.Zaleca się, że użytkownik nigdy nie zestaw ZAUFANEGO opcję on dla wzorzec bazy danych.

      Aby zestaw ta opcja wymaga członkostwo w roli sysadmin stałych serwera.

  • <service_broker_option>
    Określa opcje usługa Broker w bazie danych.

    Opcje usługa Broker może być określony tylko, gdy jest używana klauzula do DOŁĄCZENIA.

    • ENABLE_BROKER
      Określa, że Service Broker jest włączone dla określonej bazy danych. Oznacza to, is_broker_enabled jest ustawiona na wartość true w katalogu sys.databases dostawy widoku i wiadomości jest uruchomiona.

    • NEW_BROKER
      Tworzy nową wartość service_broker_guid zarówno sys.databases przywróconej bazy danych i kończy się wszystkie punkty końcowe konwersacji z oczyszczanie.Brokera jest włączona, ale wiadomość nie jest wysyłana do punktów końcowych zdalnego konwersacji.

    • ERROR_BROKER_CONVERSATIONS
      Kończy wszystkie konwersacje z zostanie błąd wskazujący czy baza danych jest podłączone lub przywrócone.Brokera jest wyłączone, dopóki ta operacja jest zakończona i włączone.

  • database_snapshot_name
    Jest nazwą nowego migawka bazy danych.Database snapshot names must be unique within an instance of SQL Server and comply with the rules for identifiers.database_snapshot_name can be a maximum of 128 characters.

  • ON ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]
    Przy tworzeniu bazy danych migawka, określa listę plików w źródłowej bazie danych.Dla migawka do pracy wszystkie pliki danych należy określić indywidualnie.Niemniej jednak pliki dziennika nie są dozwolone dla migawki bazy danych.

    Opis odpowiednikiem znajduje się opis nazwę pola FILENAME i ich wartości <określenie_pliku> wartości.

    Uwaga

    Podczas tworzenia migawka bazy danych, innym <określenie_pliku> Opcje i słowo kluczowe PRIMARY są niedozwolone.

  • AS Z MIGAWKĄ source_database_name
    Określa, że baza danych, tworzony jest migawka bazy danych ze źródłowa baza danych określonego przez source_database_name. migawka i urządzenie źródłowe bazy danych musi znajdować się na tym samym wystąpieniu.

    Aby uzyskać więcej informacji zobacz "migawki bazy danych" w sekcji Uwagi.

Remarks

The wzorzec bazy danych should be backed up whenever a baza danych użytkownika is created, modified, or dropped.

Instrukcja CREATE DATABASE musi być uruchomiony tryb automatycznego zatwierdzania (domyślny tryb zarządzania transakcji), a nie jest dozwolona w transakcjach jawny lub niejawny.Aby uzyskać więcej informacji zobaczTransakcje autocommit.

You can use one CREATE DATABASE statement to create a database and the files that store the database.SQL Server implements the CREATE DATABASE statement by using the following steps:

  1. The SQL Server uses a copy of the baza danych modelu to initialize the database and its metadane.

  2. Pośrednik usługa identyfikator GUID jest przypisywany do bazy danych.

  3. The Database Engine then fills the rest of the database with empty pages, except for pages that have internal data that records how the space is used in the database.Aby uzyskać więcej informacji zobaczInicjowanie plik bazy danych.

Można określić maksymalnie 32 767 baz danych na wystąpienie SQL Server.

Każda baza danych ma właściciela, które mogą wykonywać czynności specjalnych w bazie danych.Właścicielem jest użytkownik, który utworzy bazę danych.Właściciel bazy danych można zmienić przy użyciu sp_changedbowner.

Pliki bazy danych i Filegroups

Co baza danych zawiera co najmniej 2 pliki, podstawowego pliku oraz pliku dziennik transakcji i co najmniej jedną grupa plików.Dla każdej bazy danych można określić maksymalnie 32 767 plików i filegroups 32 767.Aby uzyskać więcej informacji zobaczPliki i architektura Filegroups.

Podczas tworzenia bazy danych należy plików danych jak największa oparte na maksymalną ilość danych, które oczekują w bazie danych.Aby uzyskać więcej informacji zobaczKorzystanie z plików i Filegroups zarządzania wzrost bazy danych.

Zaleca się używanie sieci magazynowania (SAN, Storage Area Network), sieć oparta na iSCSI lub lokalnie dołączonym dysku do przechowywania sieci SQL Server pliki, bazy danych, ponieważ ta konfiguracja optymalizuje SQL Server wydajność i niezawodność. Domyślnie korzystanie z plików bazy danych sieci (przechowywane na serwerze sieciowym lub w sieci magazynowania) nie jest włączona dla SQL Server. Można jednak utworzyć bazy danych zawierającej pliki bazy danych opartej na sieci przy użyciu flagi śledzenia 1807.Aby uzyskać informacje dotyczące tej flagi śledzenia i ważne wydajności i uwagi dotyczące obsługi technicznej zobacz temat to Witryny firmy Microsoft w sieci Web.

Migawki bazy danych

Aby utworzyć widok tylko do odczytu, statyczny, za pomocą instrukcja CREATE DATABASE migawka bazy danych, z istniejącej bazy danych, urządzenie źródłowe bazy danych.migawka bazy danych jest transakcyjnie zgodne z urządzenie źródłowe bazy danych jako jej istniały w momencie utworzenia migawki.A urządzenie źródłowe baza danych może mieć wielu migawek.

Uwaga

Podczas tworzenia migawka bazy danych w instrukcja CREATE DATABASE mogą się odwoływać pliki dziennika, plików trybu offline, Przywracanie plików i unieczynnione.

Jeśli tworzenie migawka bazy danych nie powiedzie się, migawka staje się podejrzany i muszą zostać usunięte.Aby uzyskać więcej informacji zobaczDROP DATABASE języka Transact-SQL).

Każde zdjęcie będzie się powtarzał, dopóki zostanie usunięty przy użyciu DROP DATABASE.

Aby uzyskać więcej informacji zobacz Database Snapshots.

Opcje bazy danych

Kilka opcji bazy danych są automatycznie zestaw za każdym razem, gdy można utworzyć bazę danych.Aby uzyskać listę tych opcji i ustawień domyślnych zobacz Setting Database Options. Opcje te można modyfikować za pomocą ZMIENIANIE BAZY DANYCH instrukcja.

baza danych modelu i tworzenie nowych baz danych

Wszystkie obiekty zdefiniowane przez użytkownika w baza danych modelu są kopiowane do wszystkich nowo tworzonych baz danych.Wszystkie obiekty, takie jak tabele, widoki, procedury przechowywane, typy danych i tak dalej, można dodać do baza danych modelu mają zostać uwzględnione w wszystkie nowo utworzone bazy danych.

Gdy CREATE bazy danych database_name Instrukcja jest określona bez rozmiar dodatkowe parametry, pliku podstawowego dokonuje się taki sam rozmiar jak plik podstawowy w baza danych modelu.

Jeśli nie określono dla DOŁĄCZANIA każdej nowej bazy danych dziedziczy ustawień opcji bazy danych baza danych modelu.Na przykład, to opcję bazy danych Autozmniejszanie zestaw do true w modelu i wszystkich nowych baz danych można utworzyć. Jeśli zmienisz opcje dostępne w baza danych modelu, nowe ustawienia opcji są używane w nowych baz danych, z utworzeniem.Zmiana operacji w bazie danych modelu nie ma wpływu na istniejących baz danych.Jeśli do DOŁĄCZANIA jest określona w instrukcja CREATE DATABASE, nowej bazy danych dziedziczy ustawień opcji bazy danych z oryginalnej bazy danych.

Wyświetlanie informacji z bazy danych

Katalog widoki, funkcje systemowe i procedur przechowywana w systemie można użyć do zwracania informacji o bazach danych, plików i filegroups.Aby uzyskać więcej informacji zobaczViewing Database Metadata.

Uprawnienia

Wymaga tworzenie bazy danych, tworzenie bazy danych bez lub ALTER DATABASE bez uprawnień.

Aby zachować kontrolę nad wykorzystania dysku na wystąpienie SQL Server, uprawnienie do tworzenia baz danych jest zwykle ograniczona do kilku kont logowania.

Uprawnienia do danych i plików dziennika

W SQL Server, są określone uprawnienia zestaw plików danych i dziennika każdej bazy danych. Następujące uprawnienia są zestaw za każdym razem, gdy następujące operacje są stosowane w odniesieniu do bazy danych:

Created

Zmodyfikowane, aby dodać nowy plik

Dołączony

Kopie zapasowe

Odłączony

Przywrócono

Uprawnienia uniemożliwić ich przypadkowego niepowołane jeśli są one przechowywane w katalogu, który posiada uprawnienia Otwieranie plików.Aby uzyskać więcej informacji zobaczSecuring Data and Log Files.

Uwaga

Microsoft SQL Server 2005 Express Edition nie zestaw danych i dziennika pliku uprawnienia.

Przykłady

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

W poniższym przykładzie tworzone w bazie danych mytest i tworzy odpowiadające podstawowym i plik dziennik transakcji. Ponieważ nie ma instrukcja <określenie_pliku> elementy plików podstawowa baza danych jest rozmiar pliku podstawowego baza danych modelu. Dziennik transakcji jest zestaw do większego z następujących wartości: 512 KB lub 25 % rozmiaru pliku podstawowego. Ponieważ nie określono MAXSIZE, pliki można powiększyć aby wypełnił całe dostępne miejsce na dysku.W tym przykładzie przedstawiono również sposób upuść bazę danych o nazwie mytest Jeśli istnieje, przed utworzeniem mytest Baza danych.

B.Tworzenie bazy danych, które określa dane i dziennik transakcji plików

W poniższym przykładzie tworzone w bazie danych Sales. Ponieważ nie jest używane słowo kluczowe PRIMARY, pierwszy plik)Sales_dat) staje się plikiem podstawowym. Ponieważ MB ani KB jest określony przez parametr SIZE dla Sales_dat plik, używa MB i są przydzielane w megabajtach. The Sales_log file is allocated in megabytes because the MB suffix is explicitly stated in the SIZE parameter.

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

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

W poniższym przykładzie tworzone w bazie danych Archive ma trzy 100-MB pliki danych i dwa 100-MB pliki dziennik transakcji. Plik główny jest pierwszym plikiem na liście i jawnie jest określany za pomocą PRIMARY słowo kluczowe. Pliki dziennik transakcji są określane po LOG ON słowa kluczowe. Należy zwrócić uwagę, rozszerzenia, wykorzystywanej przez pliki w FILENAME Opcja: .mdf Służy do plików danych podstawowych .ndf Służy do pomocniczych plików danych, a .ldf Służy do plików dziennik transakcji. W poniższym przykładzie baza danych są umieszczane na D dysk, a nie z master Baza danych.

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, które ma filegroups

W poniższym przykładzie tworzone w bazie danych Sales które ma filegroups następujących czynności:

  • Podstawowy grupa plików przy użyciu plików Spri1_dat i Spri2_dat. Zwiększa FILEGROWTH tych plików jest określony 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 powoduje umieszczenie plików danych i dziennika 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

The following example detaches the database Archive created in example D, and then attaches it by using the FOR ATTACH clause.Archive was defined to have multiple data and log files.Jednak ponieważ lokalizację plików nie uległa zmianie, ponieważ zostały utworzone, ma tylko podstawowy plik ma być określony w FOR ATTACH Klauzula. Zaczyna się od SQL Server 2005, wszystkie pliki pełnego tekstu, które są częścią bazy danych, który jest dołączany jest dołączana z bazą danych.

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

F.Tworzenie migawka bazy danych

Poniższy przykład tworzy migawka bazy danych sales_snapshot0600. Ponieważ migawka bazy danych jest tylko do odczytu, nie można określić w pliku dziennika.Zgodnie ze składnią, każdy plik w urządzenie źródłowe określono bazy danych, a nie określono filegroups.

Źródłowa baza danych w tym przykładzie jest Sales Baza danych 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 opcji i nazwa sortowanie.

W poniższym przykładzie tworzone w bazie danych MyOptionsTest. Nazwa sortowanie zostanie określony, TRUSTYWORTHY i DB_CHAINING opcje są ustawione na ON.

H.Dołączanie wykaz pełnotekstowy został przeniesiony

W poniższym przykładzie dołącza wykazu pełnego tekstu AdvWksFtCat wraz z AdventureWorks pliki danych i dziennika. W tym przykładzie wykaz pełnotekstowy zostanie przeniesiony z jego domyślnej lokalizacji do nowej lokalizacji c:\myFTCatalogs. Pliki danych i dziennika pozostają w ich lokalizacji domyślnej.

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

I.Tworzenie bazy danych, które określa grupa plików wiersz i dwa filegroups FILESTREAM

Poniższy przykład tworzy FileStreamDB Baza danych. Baza danych została utworzona za pomocą grupa plików jeden wiersz i dwa filegroups FILESTREAM.Każdą grupa plików zawiera jeden plik:

  • FileStreamDB_data zawiera wiersz danych.Zawiera jeden plik FileStreamDB_data.mdf w domyślnej ścieżce.

  • FileStreamPhotos zawiera dane FILESTREAM.Zawiera jeden kontener FILESTREAM danych FSPhotos, znajdujący się w C:\MyFSfolder\Photos. Jest ona oznaczona jako grupę domyślną FILESTREAM plików.

  • FileStreamResumes zawiera dane FILESTREAM to zawiera jeden kontener FILESTREAM danych FSResumes, znajdujący się w C:\MyFSfolder\Resumes.

USE master;
GO
IF DB_ID (N'FileStreamDB') IS NOT NULL
DROP DATABASE FileStreamDB;
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, MAXSIZE, FILEGROWTH should not be specified here.
-- If they are specified an error will be raised.
    ),
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