CREATE DATABASE (SQL Server Transact-SQL)CREATE DATABASE (SQL Server Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Erstellt eine neue Datenbank und die zum Speichern der Datenbank verwendeten Dateien, erstellt eine Datenbank-Momentaufnahme oder hängt eine Datenbank aus den getrennten Dateien einer zuvor erstellten Datenbank an.Creates a new database and the files used to store the database, a database snapshot, or attaches a database from the detached files of a previously created database.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax


      Create a database  
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 }  
}  

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

<service_broker_option> ::=  
{  
    ENABLE_BROKER  
  | NEW_BROKER  
  | ERROR_BROKER_CONVERSATIONS  
}  

      Attach a database  
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 } )  
}  

      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  
[;]  

ArgumenteArguments

database_namedatabase_name
Ist der Name der neuen Datenbank.Is the name of the new database. Datenbanknamen müssen innerhalb einer Instanz eindeutig sein SQL ServerSQL Server und entsprechen den Regeln für Bezeichner.Database names must be unique within an instance of SQL ServerSQL Server and comply with the rules for identifiers.

Database_name kann maximal 128 Zeichen sein, es sei denn, ein logischer Name für die Protokolldatei nicht angegeben ist.database_name can be a maximum of 128 characters, unless a logical name is not specified for the log file. Wenn ein logische Protokolldateiname nicht angegeben wird, SQL ServerSQL Server generiert die Logical_file_name und logische für das Protokoll durch Anfügen eines Suffixes an Database_name.If a logical log file name is not specified, SQL ServerSQL Server generates the logical_file_name and the os_file_name for the log by appending a suffix to database_name. Dies schränkt Database_name auf 123 Zeichen, sodass der generierte logische Protokolldateiname nicht mehr als 128 Zeichen lang ist.This limits database_name to 123 characters so that the generated logical file name is no more than 128 characters.

Wenn kein Datendateiname angegeben wird, SQL ServerSQL Server verwendet Database_name wie die Logical_file_name und als die physischer Dateiname.If data file name is not specified, SQL ServerSQL Server uses database_name as both the logical_file_name and as the os_file_name. Der Standardpfad wird aus der Registrierung abgerufen.The default path is obtained from the registry. Der Standardpfad kann geändert werden, indem die Servereigenschaften (Seite Datenbankeinstellungen) in Management StudioManagement Studio.The default path can be changed by using the Server Properties (Database Settings Page) in Management StudioManagement Studio. Zum Ändern des Standardpfads muss SQL ServerSQL Server neu gestartet werden.Changing the default path requires restarting SQL ServerSQL Server.

CONTAINMENT = { NONE | PARTIAL }CONTAINMENT = { NONE | PARTIAL }

Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017

Gibt den Kapselungsstatus der Datenbank an.Specifies the containment status of the database. NONE = nicht eigenständige Datenbank.NONE = non-contained database. PARTIAL = teilweise eigenständige Datenbank.PARTIAL = partially contained database.

ONON
Gibt an, dass die zum Speichern der Datenabschnitte der Datenbank (Datendateien) verwendeten Datenträgerdateien explizit definiert sind.Specifies that the disk files used to store the data sections of the database, data files, are explicitly defined. ON ist erforderlich, wenn gefolgt von einer durch Trennzeichen getrennte Liste von <Filespec > Elemente, die die Datendateien für die primäre Dateigruppe definieren.ON is required when followed by a comma-separated list of <filespec> items that define the data files for the primary filegroup. Die Liste der Dateien in der primären Dateigruppe kann eine optionale durch Trennzeichen getrennte Liste von folgen <Dateigruppe > Elemente, die Benutzerdateigruppen und deren Dateien definieren.The list of files in the primary filegroup can be followed by an optional, comma-separated list of <filegroup> items that define user filegroups and their files.

PRIMARYPRIMARY
Gibt an, dass die zugeordnete <Filespec >-Liste die Primärdatei definiert.Specifies that the associated <filespec> list defines the primary file. Die erste Datei im angegebenen der <Filespec > Eintrag in der primären Dateigruppe wird die primäre Datei.The first file specified in the <filespec> entry in the primary filegroup becomes the primary file. Eine Datenbank kann nur eine primäre Datei haben.A database can have only one primary file. Weitere Informationen finden Sie unter Database Files and Filegroups.For more information, see Database Files and Filegroups.

Ist PRIMARY nicht angegeben, wird die erste in der CREATE DATABASE-Anweisung aufgeführte Datei die primäre Datei.If PRIMARY is not specified, the first file listed in the CREATE DATABASE statement becomes the primary file.

LOG ONLOG ON
Gibt an, dass die zum Speichern des Datenbankprotokolls verwendeten Datenträgerdateien (Protokolldateien) explizit definiert sind.Specifies that the disk files used to store the database log, log files, are explicitly defined. Eine durch Trennzeichen getrennte Liste der LOG ON folgt <Filespec > Elemente, die die Protokolldateien definieren.LOG ON is followed by a comma-separated list of <filespec> items that define the log files. Wenn LOG ON nicht angegeben ist, wird eine Protokolldatei automatisch erstellt wird, wird die Größe beträgt 25 Prozent der Summe der Größen aller Dateien, die Daten für die Datenbank, oder 512 KB ist, welcher Wert größer ist.If LOG ON is not specified, one log file is automatically created, which has a size that is 25 percent of the sum of the sizes of all the data files for the database, or 512 KB, whichever is larger. Diese Datei wird am Standard-Protokolldateispeicherort eingefügt.This file is placed in the default log-file location. Informationen zu diesem Speicherort finden Sie unter anzeigen oder Ändern der Standardspeicherorte für Daten- und Protokolldateien ( SQL Server Management Studio ) .For information about this location, see View or Change the Default Locations for Data and Log Files (SQL Server Management Studio).

LOG ON kann nicht in einer Datenbankmomentaufnahme angegeben werden.LOG ON cannot be specified on a database snapshot.

COLLATE Collation_nameCOLLATE collation_name
Gibt die Standardsortierung für die Datenbank an.Specifies the default collation for the database. Als Sortierungsname kann entweder der Name einer Windows-Sortierreihenfolge oder ein SQL-Sortierungsname verwendet werden.Collation name can be either a Windows collation name or a SQL collation name. Wenn keine Sortierung angegeben ist, wird der Datenbank die Standardsortierung der Instanz von SQL ServerSQL Server zugewiesen.If not specified, the database is assigned the default collation of the instance of SQL ServerSQL Server. In einer Datenbankmomentaufnahme kann kein Sortierungsname angegeben werden.A collation name cannot be specified on a database snapshot.

Mit den Klauseln FOR ATTACH und FOR ATTACH_REBUILD_LOG kann kein Sortierungsname angegeben werden.A collation name cannot be specified with the FOR ATTACH or FOR ATTACH_REBUILD_LOG clauses. Informationen dazu, wie die Sortierung einer angefügten Datenbank ändern, finden Sie auf diese Microsoft-Website.For information about how to change the collation of an attached database, visit this Microsoft Web site.

Weitere Informationen zu den Windows- und SQL-Sortierungsnamen finden Sie unter COLLATE ( Transact-SQL ) .For more information about the Windows and SQL collation names, see COLLATE (Transact-SQL).

Hinweis

Eigenständige Datenbanken werden anders sortiert als nicht eigenständige Datenbanken.Contained databases are collated differently than non-contained databases. Finden Sie unter Contained Database Collations für Weitere Informationen.Please see Contained Database Collations for more information.

MIT <Option >WITH <option>

  • <Filestream_options ><filestream_options>

    NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | VOLLSTÄNDIGE}NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
    Gilt für: SQL Server 2012SQL Server 2012 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

    Gibt die Ebene des nicht transaktionalen FILESTREAM-Zugriffs auf die Datenbank an.Specifies the level of non-transactional FILESTREAM access to the database.

    WertValue BeschreibungDescription
    OFFOFF Nicht transaktionaler Zugriff ist deaktiviert.Non-transactional access is disabled.
    READONLYREADONLY FILESTREAM-Daten in dieser Datenbank können von nicht transaktionalen Prozessen gelesen werden.FILESTREAM data in this database can be read by non-transactional processes.
    FULLFULL Der vollständige nicht transaktionale Zugriff auf FILESTREAM-FileTables ist aktiviert.Full non-transactional access to FILESTREAM FileTables is enabled.

    DIRECTORY_NAME = <Directory_name > betrifft: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017DIRECTORY_NAME = <directory_name> Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017

    Ein Windows-kompatibler Verzeichnisname.A windows-compatible directory name. Dieser Name sollte für alle Database_Directory-Namen in der SQL ServerSQL Server-Instanz eindeutig sein.This name should be unique among all the Database_Directory names in the SQL ServerSQL Server instance. Bei Eindeutigkeitsvergleichen wird die Groß-/Kleinschreibung nicht beachtet, unabhängig von den SQL ServerSQL Server-Sortiereinstellungen.Uniqueness comparison is case-insensitive, regardless of SQL ServerSQL Server collation settings. Diese Option sollte vor dem Erstellen einer FileTable in dieser Datenbank festgelegt werden.This option should be set before creating a FileTable in this database.

    Die folgenden Optionen sind nur zulässig, wenn CONTAINMENT auf PARTIAL festgelegt wurde.The following options are allowable only when CONTAINMENT has been set to PARTIAL. Wenn CONTAINMENT auf NONE festgelegt wird, treten Fehler auf.If CONTAINMENT is set to NONE, errors will occur.

  • DEFAULT_FULLTEXT_LANGUAGE = <Lcid > | <Sprachenname > | <Sprachenalias >DEFAULT_FULLTEXT_LANGUAGE = <lcid> | <language name> | <language alias>

Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017

 See [Configure the default full-text language Server Configuration Option](../../database-engine/configure-windows/configure-the-default-full-text-language-server-configuration-option.md) for a full description of this option.  
  • DEFAULT_LANGUAGE = <Lcid > | <Sprachenname > | <Sprachenalias >DEFAULT_LANGUAGE = <lcid> | <language name> | <language alias>

Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017

 See [Configure the default language Server Configuration Option](../../database-engine/configure-windows/configure-the-default-language-server-configuration-option.md) for a full description of this option.  
  • NESTED_TRIGGERS = {DEAKTIVIEREN | ON}NESTED_TRIGGERS = { OFF | ON}

Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017

 See [Configure the nested triggers Server Configuration Option](../../database-engine/configure-windows/configure-the-nested-triggers-server-configuration-option.md) for a full description of this option.  
  • TRANSFORM_NOISE_WORDS AN = {DEAKTIVIEREN | ON}TRANSFORM_NOISE_WORDS = { OFF | ON}

Gilt für: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017

 See [transform noise words Server Configuration Option](../../database-engine/configure-windows/transform-noise-words-server-configuration-option.md)for a full description of this option.  
  • TWO_DIGIT_YEAR_CUTOFF = {2049 | <beliebiges Jahr zwischen 1753 und 9999 >}TWO_DIGIT_YEAR_CUTOFF = { 2049 | <any year between 1753 and 9999> }

    Vier Ziffern, die ein Jahr darstellen.Four digits representing a year. Der Standardwert lautet 2049.2049 is the default value. Finden Sie unter konfigurieren two Digit Year cutoff Server Configuration Option für eine vollständige Beschreibung dieser Option.See Configure the two digit year cutoff Server Configuration Option for a full description of this option.

  • DB_CHAINING {DEAKTIVIEREN | ON}DB_CHAINING { OFF | ON }

    Wenn ON angegeben wird, kann die Datenbank Quelle oder Ziel einer datenbankübergreifenden Besitzverkettung sein.When ON is specified, the database can be the source or target of a cross-database ownership chain.

    Wenn OFF festgelegt ist, darf die Datenbank nicht Teil einer datenbankübergreifenden Besitzverkettung sein.When OFF, the database cannot participate in cross-database ownership chaining. Der Standardwert ist OFF.The default is OFF.

    Wichtig

    Die Instanz von SQL ServerSQL Server erkennt diese Einstellung, wenn die Datenbankübergreifende Besitzverkettung-Serveroption deaktiviert (0 bzw. OFF) ist.The instance of SQL ServerSQL Server will recognize this setting when the cross db ownership chaining server option is 0 (OFF). Wenn für Datenbankübergreifende Besitzverkettung der Wert 1 (ON) festgelegt ist, können alle Benutzerdatenbanken unabhängig vom Wert dieser Option Teile von datenbankübergreifenden Besitzketten sein.When cross db ownership chaining is 1 (ON), all user databases can participate in cross-database ownership chains, regardless of the value of this option. Diese Option wird festgelegt, mit Sp_configure.This option is set by using sp_configure.

    Sie müssen Mitglied der festen Serverrolle sysadmin sein, um diese Option festlegen zu können.To set this option, requires membership in the sysadmin fixed server role. Die Option DB_CHAINING kann auf folgenden Systemdatenbanken nicht festgelegt werden: master, model, tempdb.The DB_CHAINING option cannot be set on these system databases: master, model, tempdb.

  • TRUSTWORTHY {DEAKTIVIEREN | ON}TRUSTWORTHY { OFF | ON }

    Wenn ON angegeben wird, können Datenbankmodule (z. B. Sichten, benutzerdefinierte Funktionen oder gespeicherte Prozeduren), die den Identitätswechselkontext verwenden, auf Ressourcen außerhalb der Datenbank zugreifen.When ON is specified, database modules (for example, views, user-defined functions, or stored procedures) that use an impersonation context can access resources outside the database.

    Wenn OFF angegeben wird, können Datenbankmodule in einem Identitätswechselkontext nicht auf Ressourcen außerhalb der Datenbank zugreifen.When OFF, database modules in an impersonation context cannot access resources outside the database. Der Standardwert ist OFF.The default is OFF.

    TRUSTWORTHY wird auf OFF festgelegt, wenn die Datenbank angefügt wird.TRUSTWORTHY is set to OFF whenever the database is attached.

    Standardmäßig ist TRUSTWORTHY für alle Systemdatenbanken mit Ausnahme der msdb-Datenbank auf OFF festgelegt.By default, all system databases except the msdb database have TRUSTWORTHY set to OFF. Für die model-Datenbank und für die tempdb-Datenbank kann der Wert nicht geändert werden.The value cannot be changed for the model and tempdb databases. Für die master-Datenbank sollten Sie die Option TRUSTWORTHY niemals auf ON festlegen.We recommend that you never set the TRUSTWORTHY option to ON for the master database.

    Sie müssen Mitglied der festen Serverrolle sysadmin sein, um diese Option festlegen zu können.To set this option, requires membership in the sysadmin fixed server role.

    FOR ATTACH [WITH < Attach_database_option >] Gibt an, die von der Datenbankerstellung Anfügen eines vorhandenen Satzes von Betriebssystemdateien.FOR ATTACH [ WITH < attach_database_option > ] Specifies that the database is created by attaching an existing set of operating system files. Es muss eine <Filespec > Eintrag, der die primäre Datei angibt.There must be a <filespec> entry that specifies the primary file. Der einzige andere <Filespec > Einträge erforderlich getroffenen für alle Dateien, die über einen anderen Pfad als wenn die Datenbank beim Erstellen oder letzten anhängen.The only other <filespec> entries required are those for any files that have a different path from when the database was first created or last attached. Ein <Filespec > Eintrag für diese Dateien angegeben werden.A <filespec> entry must be specified for these files.

    Für FOR ATTACH ist Folgendes erforderlich:FOR ATTACH requires the following:

  • Alle Datendateien (MDF und NDF) müssen verfügbar sein.All data files (MDF and NDF) must be available.

  • Wenn mehrere Protokolldateien vorhanden sind, müssen alle verfügbar sein.If multiple log files exist, they must all be available.

    Wenn eine Datenbank im Lese-/Schreibmodus eine einzige Protokolldatei hat, die derzeit nicht verfügbar ist, und wenn die Datenbank vor dem Anfügen heruntergefahren wurde und keine Benutzer oder offene Transaktionen vorhanden sind, dann wird mit FOR ATTACH automatisch die Protokolldatei neu erstellt und die primäre Datei aktualisiert.If a read/write database has a single log file that is currently unavailable, and if the database was shut down with no users or open transactions before the attach operation, FOR ATTACH automatically rebuilds the log file and updates the primary file. Im Gegensatz dazu kann für eine schreibgeschützte Datenbank das Protokoll nicht neu erstellt werden, da das Hochladen der primären Datei nicht möglich ist.In contrast, for a read-only database, the log cannot be rebuilt because the primary file cannot be updated. Aus diesem Grund, wenn Sie eine schreibgeschützte Datenbank mit einem Protokoll, die nicht verfügbar ist anfügen, müssen Sie die Protokolldateien oder die Dateien in der FOR ATTACH-Klausel bereitstellen.Therefore, when you attach a read-only database with a log that is unavailable, you must provide the log files, or the files in the FOR ATTACH clause.

Hinweis

Eine Datenbank, die in einer neueren Version von SQL ServerSQL Server erstellt wurde, kann in früheren Versionen nicht angefügt werden.A database created by a more recent version of SQL ServerSQL Server cannot be attached in earlier versions.

In SQL ServerSQL Server werden alle Volltextdateien, die zur angefügten Datenbank gehören, mit der Datenbank angefügt.In SQL ServerSQL Server, any full-text files that are part of the database that is being attached will be attached with the database. Geben Sie den neuen Speicherort ohne Betriebssystem-Dateinamen der Volltextdatei an, um einen neuen Pfad für den Volltextkatalog anzugeben.To specify a new path of the full-text catalog, specify the new location without the full-text operating system file name. Weitere Informationen finden Sie in Abschnitt "Beispiele".For more information, see the Examples section.

Anfügen einer Datenbank, die in einer FILESTREAM-Option "Namen des Verzeichnisses" enthält einen SQL ServerSQL Server Instanz fordert SQL ServerSQL Server zu überprüfen, ob der Database_Directory-Name eindeutig ist.Attaching a database that contains a FILESTREAM option of "Directory name", into a SQL ServerSQL Server instance will prompt SQL ServerSQL Server to verify that the Database_Directory name is unique. Wenn sie nicht der Fall ist, anzufügen tritt der Fehler "FILESTREAM Database_Directory-Name <Name > ist in dieser SQLServer-Instanz nicht eindeutig".If it is not, the attach operation fails with the error, "FILESTREAM Database_Directory name <name> is not unique in this SQL Server instance". Zur Vermeidung dieses Fehlers den optionalen Parameter Directory_name, sollte für diesen Vorgang übergeben werden.To avoid this error, the optional parameter, directory_name, should be passed in to this operation.

FOR ATTACH kann nicht in einer Datenbank-Momentaufnahme angegeben werden.FOR ATTACH cannot be specified on a database snapshot.

FOR ATTACH kann die RESTRICTED_USER-Option angeben.FOR ATTACH can specify the RESTRICTED_USER option. RESTRICTED_USER ermöglicht nur Mitgliedern der festen Datenbankrolle db_owner und der festen Serverrollen dbcreator und sysadmin eine Verbindung mit der Datenbank, begrenzt jedoch nicht deren Anzahl.RESTRICTED_USER allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database, but does not limit their number. Versuche von nicht qualifizierten Benutzern werden abgelehnt.Attempts by unqualified users are refused.

Wenn die Datenbank verwendet Service BrokerService Broker, verwenden Sie die WITH <Service_broker_option > in der FOR ATTACH-Klausel:If the database uses Service BrokerService Broker, use the WITH <service_broker_option> in your FOR ATTACH clause:

<Service_broker_option > Steuerelemente Service BrokerService Broker -Nachrichtenübermittlung und den Service BrokerService Broker Bezeichner für die Datenbank.<service_broker_option> Controls Service BrokerService Broker message delivery and the Service BrokerService Broker identifier for the database. Service BrokerService Broker-Optionen können nur bei Verwendung der FOR ATTACH-Klausel angegeben werden. options can only be specified when the FOR ATTACH clause is used.

ENABLE_BROKERENABLE_BROKER
Gibt an, dass Service BrokerService Broker für die angegebene Datenbank aktiviert ist.Specifies that Service BrokerService Broker is enabled for the specified database. D. h. die Nachrichtenübermittlung ist gestartet und Is_broker_enabled auf festgelegt ist "true" in der sys.databases-Katalogsicht.That is, message delivery is started, and is_broker_enabled is set to true in the sys.databases catalog view. Die Datenbank behält den vorhandenen Service BrokerService Broker-Bezeichner bei.The database retains the existing Service BrokerService Broker identifier.

NEW_BROKERNEW_BROKER
Erstellt einen neuen Wert für service_broker_guid in sys.databases und in der wiederhergestellten Datenbank und beendet alle Konversationsendpunkte mit einem Cleanup.Creates a new service_broker_guid value in both sys.databases and the restored database and ends all conversation endpoints with clean up. Der Broker ist aktiviert, es wird jedoch keine Meldung an die Remote-Konversationsendpunkte gesendet.The broker is enabled, but no message is sent to the remote conversation endpoints. Jede Route, die auf den alten Service BrokerService Broker-Bezeichner verweist, muss mit dem neuen Bezeichner neu erstellt werden.Any route that references the old Service BrokerService Broker identifier must be re-created with the new identifier.

ERROR_BROKER_CONVERSATIONSERROR_BROKER_CONVERSATIONS
Beendet alle Konversationen mit einem Fehler, der angibt, dass die Datenbank angefügt oder wiederhergestellt wird.Ends all conversations with an error stating that the database is attached or restored. Der Broker ist deaktiviert, bis dieser Vorgang abgeschlossen ist, und wird dann aktiviert.The broker is disabled until this operation is completed and then enabled. Die Datenbank behält den vorhandenen Service BrokerService Broker-Bezeichner bei.The database retains the existing Service BrokerService Broker identifier.

Berücksichtigen Sie Folgendes, wenn Sie eine replizierte Datenbank anfügen, die kopiert statt getrennt wurde:When you attach a replicated database that was copied instead of being detached, consider the following:

  • Wenn Sie die Datenbank an die gleiche Serverinstanz und -version wie die ursprüngliche Datenbank anfügen, sind keine weiteren Schritte erforderlich.If you attach the database to the same server instance and version as the original database, no additional steps are required.

  • Wenn Sie die Datenbank mit der gleichen Serverinstanz anfügen, aber Sie müssen mit einer aktualisierten Version ausführen Sp_vupgrade_replication auf die Replikation zu aktualisieren, nachdem der Anfügevorgang abgeschlossen wurde.If you attach the database to the same server instance but with an upgraded version, you must execute sp_vupgrade_replication to upgrade replication after the attach operation is complete.

  • Wenn Sie die Datenbank an eine andere Serverinstanz unabhängig von der Version anfügen müssen Sie ausführen Sp_removedbreplication zum Entfernen der Replikation, nachdem der Anfügevorgang abgeschlossen wurde.If you attach the database to a different server instance, regardless of version, you must execute sp_removedbreplication to remove replication after the attach operation is complete.

Hinweis

Anfügen der Vardecimal Speicherformat, aber die SQL Server-DatenbankmodulSQL Server Database Engine muss auf mindestens aktualisiert werden SQL Server 2005SQL Server 2005 Service Pack 2.Attach works with the vardecimal storage format, but the SQL Server-DatenbankmodulSQL Server Database Engine must be upgraded to at least SQL Server 2005SQL Server 2005 Service Pack 2. Sie können keine Datenbank mit "vardecimal"-Speicherformat an eine frühere Version von SQL ServerSQL Server anfügen.You cannot attach a database using vardecimal storage format to an earlier version of SQL ServerSQL Server. Weitere Informationen zu den Vardecimal Speicherformat, finden Sie unter Datenkomprimierung.For more information about the vardecimal storage format, see Data Compression.

Wird eine Datenbank zum ersten Mal an eine neue Instanz von SQL ServerSQL Serverangefügt oder wiederhergestellt, ist noch keine Kopie des Datenbank-Hauptschlüssels (verschlüsselt vom Diensthauptschlüssel) auf dem Server gespeichert.When a database is first attached or restored to a new instance of SQL ServerSQL Server, a copy of the database master key (encrypted by the service master key) is not yet stored in the server. Der Datenbank-Hauptschlüssel (Database Master Key, DMK) muss mithilfe der Anweisung OPEN MASTER KEY entschlüsselt werden.You must use the OPEN MASTER KEY statement to decrypt the database master key (DMK). Nachdem der Datenbank-Hauptschlüssel entschlüsselt wurde, können Sie für die Zukunft die automatische Entschlüsselung aktivieren, indem Sie die Anweisung ALTER MASTER KEY REGENERATE verwenden. Auf diese Weise können Sie eine Kopie des mit dem Diensthauptschlüssel (Service Master Key, SMK) verschlüsselten Datenbank-Hauptschlüssels für den Server bereitstellen.Once the DMK has been decrypted, you have the option of enabling automatic decryption in the future by using the ALTER MASTER KEY REGENERATE statement to provision the server with a copy of the DMK, encrypted with the service master key (SMK). Wenn eine Datenbank von einer früheren Version aktualisiert wurde, sollte der DMK neu generiert werden, damit er den neueren AES-Algorithmus verwendet.When a database has been upgraded from an earlier version, the DMK should be regenerated to use the newer AES algorithm. Weitere Informationen zum Neugenerieren des DMK finden Sie unter ALTER MASTER KEY (Transact-SQL).For more information about regenerating the DMK, see ALTER MASTER KEY (Transact-SQL). Die zum Neugenerieren des DMK zum Upgrade auf AES erforderliche Zeit hängt von der Anzahl der Objekte ab, die durch den DMK geschützt werden.The time required to regenerate the DMK key to upgrade to AES depends upon the number of objects protected by the DMK. Der DMK muss nur einmal auf AES aktualisiert und neu generiert werden. Dies hat keine Auswirkungen auf zukünftige Neugenerierungen im Rahmen einer Schlüsselrotationsstrategie.Regenerating the DMK key to upgrade to AES is only necessary once, and has no impact on future regenerations as part of a key rotation strategy. Informationen zum Aktualisieren einer Datenbank mithilfe von anfügen, finden Sie unter Upgrade einer Datenbank durch Trennen und Anfügen von Datenbanken ( Transact-SQL ) .For information about how to upgrade a database by using attach, see Upgrade a Database Using Detach and Attach (Transact-SQL).

Sicherheitshinweis es wird empfohlen, dass Sie keine Datenbanken aus unbekannten oder nicht vertrauenswürdigen Quellen anfügen.Security Note We recommend that you do not attach databases from unknown or untrusted sources. Solche Datenbanken können bösartigen Code enthalten, der möglicherweise unbeabsichtigten Transact-SQLTransact-SQL -Code ausführt oder Fehler verursacht, indem er das Schema oder die physische Datenbankstruktur ändert.Such databases could contain malicious code that might execute unintended Transact-SQLTransact-SQL code or cause errors by modifying the schema or the physical database structure. Bevor Sie eine Datenbank aus einer unbekannten oder nicht vertrauenswürdigen Quelle verwenden, führen Sie DBCC CHECKDB für die Datenbank auf einem nichtproduktionsserver, und überprüfen Sie außerdem den Code, z. B. gespeicherte Prozeduren oder anderen benutzerdefinierten Code, in der Datenbank.Before you use a database from an unknown or untrusted source, run DBCC CHECKDB on the database on a nonproduction server, and also examine the code, such as stored procedures or other user-defined code, in the database.

Hinweis

Die TRUSTWORTHY und DB_CHAINING Optionen haben keinen Einfluss auf, wenn eine Datenbank anfügen.The TRUSTWORTHY and DB_CHAINING options have no affect when attaching a database.

FOR ATTACH_REBUILD_LOGFOR ATTACH_REBUILD_LOG
Gibt an, dass die Datenbank durch Anfügen eines vorhandenen Satzes von Betriebssystemdateien erstellt wird.Specifies that the database is created by attaching an existing set of operating system files. Diese Option ist auf Datenbanken mit Lese-/Schreibzugriff beschränkt.This option is limited to read/write databases. Es muss ein <Filespec > Eintrag, der die primäre Datei angibt.There must be a <filespec> entry specifying the primary file. Wenn eines oder mehrere Transaktionsprotokolle fehlen, wird das Protokoll neu erstellt.If one or more transaction log files are missing, the log file is rebuilt. Der ATTACH_REBUILD_LOG erstellt automatisch eine neue, 1 MB-Protokolldatei.The ATTACH_REBUILD_LOG automatically creates a new, 1 MB log file. Diese Datei wird am Standard-Protokolldateispeicherort eingefügt.This file is placed in the default log-file location. Informationen zu diesem Speicherort finden Sie unter anzeigen oder Ändern der Standardspeicherorte für Daten- und Protokolldateien ( SQL Server Management Studio ) .For information about this location, see View or Change the Default Locations for Data and Log Files (SQL Server Management Studio).

Hinweis

Wenn die Protokolldateien verfügbar sind, verwendet DatenbankmodulDatabase Engine diese Dateien und erstellt nicht die Protokolldateien neu.If the log files are available, the DatenbankmodulDatabase Engine uses those files instead of rebuilding the log files.

Für FOR ATTACH_REBUILD_LOG ist Folgendes erforderlich:FOR ATTACH_REBUILD_LOG requires the following:

  • Ein fehlerfreies Herunterfahren der Datenbank.A clean shutdown of the database.

  • Alle Datendateien (MDF und NDF) müssen verfügbar sein.All data files (MDF and NDF) must be available.

Wichtig

Mit diesem Vorgang wird die Protokollsicherungskette unterbrochen.This operation breaks the log backup chain. Wir empfehlen, nach Abschluss dieses Vorgangs eine vollständige Datenbanksicherung auszuführen.We recommend that a full database backup be performed after the operation is completed. Weitere Informationen finden Sie unter BACKUP (Transact-SQL).For more information, see BACKUP (Transact-SQL).

In der Regel wird FOR ATTACH_REBUILD_LOG verwendet, wenn Sie eine Datenbank mit Lese-/Schreibzugriff mit einem großen Protokoll auf einen anderen Server kopieren, auf dem die Kopie hauptsächlich oder ausschließlich für Lesevorgänge verwendet wird und deshalb weniger Speicherplatz für das Protokoll benötigt wird, als bei der ursprünglichen Datenbank.Typically, FOR ATTACH_REBUILD_LOG is used when you copy a read/write database with a large log to another server where the copy will be used mostly, or only, for read operations, and therefore requires less log space than the original database.

FOR ATTACH_REBUILD_LOG kann nicht auf einer Datenbank-Momentaufnahme angegeben werden.FOR ATTACH_REBUILD_LOG cannot be specified on a database snapshot.

Weitere Informationen über das Anfügen und Trennen von Datenbanken finden Sie unter Datenbank trennen und Anfügen von Datenbanken ( SQLServer ) .For more information about attaching and detaching databases, see Database Detach and Attach (SQL Server).

<Filespec ><filespec>
Steuert die Dateieigenschaften.Controls the file properties.

Namen Logical_file_nameNAME logical_file_name
Gibt den logischen Namen für die Datei an.Specifies the logical name for the file. NAME ist erforderlich, wenn FILENAME angegeben wird, dies gilt jedoch nicht, wenn eine der FOR ATTACH-Klauseln angegeben wird.NAME is required when FILENAME is specified, except when specifying one of the FOR ATTACH clauses. Einer FILESTREAM-Dateigruppe kann der Name PRIMARY nicht zugewiesen werden.A FILESTREAM filegroup cannot be named PRIMARY.

logical_file_namelogical_file_name
Der logische Dateiname, der in SQL ServerSQL Server beim Verweis auf die Datei verwendet wird.Is the logical name used in SQL ServerSQL Server when referencing the file. Logical_file_name muss in der Datenbank eindeutig sein und entsprechen den Regeln für Bezeichner.Logical_file_name must be unique in the database and comply with the rules for identifiers. Der Name kann eine Zeichen- oder Unicode-Konstante oder ein regulärer oder Begrenzungsbezeichner sein.The name can be a character or Unicode constant, or a regular or delimited identifier.

FILENAME { "logische" | "Filestream_path ' }FILENAME { 'os_file_name' | 'filestream_path' }
Gibt einen Betriebssystem-Dateinamen (physischer Dateiname) an.Specifies the operating system (physical) file name.

" logische "' os_file_name '
Der Pfad und der Dateiname, die vom Betriebssystem beim Erstellen der Datei verwendet werden.Is the path and file name used by the operating system when you create the file. Die Datei muss sich auf einem der folgenden Geräten bzw. Netzwerken befinden: auf dem lokalen Server, auf dem SQL ServerSQL Server installiert ist, in einem SAN (Storage Area Network) oder in einem Netzwerk auf iSCSI-Basis.The file must reside on one of the following devices: the local server on which SQL ServerSQL Server is installed, a Storage Area Network [SAN], or an iSCSI-based network. Der angegebene Pfad muss bereits vorhanden sein, bevor die CREATE DATABASE-Anweisung ausgeführt wird.The specified path must exist before executing the CREATE DATABASE statement. Weitere Informationen finden Sie im Abschnitt mit Hinweisen unter "Datenbankdateien und Dateigruppen".For more information, see "Database Files and Filegroups" in the Remarks section.

Die Parameter SIZE, MAXSIZE und FILEGROWTH können festgelegt werden, wenn ein UNC-Pfad für die Datei angegeben wird.SIZE, MAXSIZE, and FILEGROWTH parameters can be set when a UNC path is specified for the file.

Wenn die Datei auf einer Rawpartition befindet logische müssen nur den Laufwerkbuchstaben einer vorhandenen Rawpartition angeben.If the file is on a raw partition, os_file_name must specify only the drive letter of an existing raw partition. Auf einer Rawpartition kann nur eine einzige Datendatei erstellt werden.Only one data file can be created on each raw partition.

Datendateien sollten nicht in komprimierten Dateisystemen abgelegt werden, es sei denn, alle Dateien sind schreibgeschützte sekundäre Dateien oder die Datenbank ist schreibgeschützt.Data files should not be put on compressed file systems unless the files are read-only secondary files, or the database is read-only. Protokolldateien sollten niemals in komprimierten Dateisystemen abgelegt werden.Log files should never be put on compressed file systems.

" Filestream_path "' filestream_path '
Für eine FILESTREAM-Dateigruppe verweist FILENAME auf einen Pfad, wo FILESTREAM-Daten gespeichert werden.For a FILESTREAM filegroup, FILENAME refers to a path where FILESTREAM data will be stored. Der Pfad muss bis zum letzten Ordner vorhanden sein, und der letzte Ordner darf nicht vorhanden sein.The path up to the last folder must exist, and the last folder must not exist. Wenn Sie z. B. den Pfad C:\MyFiles\MyFilestreamData angeben, muss C:\MyFiles vor der Ausführung von ALTER DATABASE vorhanden sein, der Ordner MyFilestreamData muss jedoch noch nicht existieren.For example, if you specify the path C:\MyFiles\MyFilestreamData, C:\MyFiles must exist before you run ALTER DATABASE, but the MyFilestreamData folder must not exist.

Die Dateigruppe und die Datei (<filespec>) müssen in derselben Anweisung erstellt werden.The filegroup and file (<filespec>) must be created in the same statement.

Die Eigenschaften SIZE und FILEGROWTH gelten nicht für eine FILESTREAM-Dateigruppe.The SIZE and FILEGROWTH properties do not apply to a FILESTREAM filegroup.

Größe GrößeSIZE size
Gibt die Größe der Datei an.Specifies the size of the file.

Größe nicht angegeben, wann die logische als UNC-Pfad angegeben ist.SIZE cannot be specified when the os_file_name is specified as a UNC path. SIZE gilt nicht für eine FILESTREAM-Dateigruppe.SIZE does not apply to a FILESTREAM filegroup.

Größesize
Die Anfangsgröße der Datei.Is the initial size of the file.

Wenn Größe nicht angegeben wird, für die primäre Datei der DatenbankmodulDatabase Engine verwendet die Größe der primären Datei in der Model-Datenbank.When size is not supplied for the primary file, the DatenbankmodulDatabase Engine uses the size of the primary file in the model database. Die Standardgröße des Modells liegt bei 8 MB (beginnend mit SQL Server 2016SQL Server 2016) oder 1 MB (für frühere Versionen).The default size of model is 8 MB (beginning with SQL Server 2016SQL Server 2016) or 1 MB (for earlier versions). Wenn eine sekundäre Datendatei oder Protokolldatei angegeben wird, aber Größe für die Datei nicht angegeben ist die DatenbankmodulDatabase Engine macht die Datei 8 MB (beginnend mit SQL Server 2016SQL Server 2016) oder 1 MB (für frühere Versionen).When a secondary data file or log file is specified, but size is not specified for the file, the DatenbankmodulDatabase Engine makes the file 8 MB (beginning with SQL Server 2016SQL Server 2016) or 1 MB (for earlier versions). Die für die primäre Datei angegebene Größe muss mindestens der Größe der primären Datei der model-Datenbank entsprechen.The size specified for the primary file must be at least as large as the primary file of the model database.

Es kann das Suffix Kilobyte (KB), Megabyte (MB), Gigabyte (GB) oder Terabyte (TB) verwendet werden.The kilobyte (KB), megabyte (MB), gigabyte (GB), or terabyte (TB) suffixes can be used. Die Standardeinheit ist MB.The default is MB. Geben Sie eine ganze Zahl; Verwenden Sie keine Dezimalzahl.Specify a whole number; do not include a decimal. Größe ist ein Ganzzahlwert.Size is an integer value. Verwenden Sie für Werte größer als 2.147.483.647 größere Einheiten.For values greater than 2147483647, use larger units.

MAXSIZE Max_sizeMAXSIZE max_size
Gibt die maximale Größe an, auf die die Datei vergrößert werden kann.Specifies the maximum size to which the file can grow. MAXSIZE nicht angegeben, wann die logische als UNC-Pfad angegeben ist.MAXSIZE cannot be specified when the os_file_name is specified as a UNC path.

max_sizemax_size
Die maximale Dateigröße.Is the maximum file size. Die Suffixe KB, MB, GB und TB können verwendet werden.The KB, MB, GB, and TB suffixes can be used. Die Standardeinheit ist MB.The default is MB. Geben Sie eine ganze Zahl; Verwenden Sie keine Dezimalzahl.Specify a whole number; do not include a decimal. Wenn Max_size nicht angegeben ist, wird die Datei vergrößert werden, bis der Datenträger voll ist.If max_size is not specified, the file grows until the disk is full. Max_size ist ein Ganzzahlwert.Max_size is an integer value. Verwenden Sie für Werte größer als 2.147.483.647 größere Einheiten.For values greater than 2147483647, use larger units.

UNLIMITEDUNLIMITED
Gibt an, dass die Größe der Datei so lange zunehmen kann, bis auf dem Datenträger kein Speicherplatz mehr verfügbar ist.Specifies that the file grows until the disk is full. In SQL ServerSQL Server gilt für eine Protokolldatei, für die keine Größenbeschränkung festgelegt ist, eine Maximalgröße von 2 TB und für eine Datendatei eine Maximalgröße von 16 TB.In SQL ServerSQL Server, a log file specified with unlimited growth has a maximum size of 2 TB, and a data file has a maximum size of 16 TB.

Hinweis

Wenn diese Option für einen FILESTREAM-Container angegeben wird, gilt keine Maximalgröße.There is no maximum size when this option is specified for a FILESTREAM container. Die Dateigröße erhöht sich so lange, bis der Datenträger voll ist.It continues to grow until the disk is full.

FILEGROWTH Growth_incrementFILEGROWTH growth_increment
Gibt das automatische Dateivergrößerungs-Inkrement an.Specifies the automatic growth increment of the file. Die FILEGROWTH-Einstellung für eine Datei darf die MAXSIZE-Einstellung nicht überschreiten.The FILEGROWTH setting for a file cannot exceed the MAXSIZE setting. FILEGROWTH nicht angegeben, wann die logische als UNC-Pfad angegeben ist.FILEGROWTH cannot be specified when the os_file_name is specified as a UNC path. FILEGROWTH gilt nicht für eine FILESTREAM-Dateigruppe.FILEGROWTH does not apply to a FILESTREAM filegroup.

growth_incrementgrowth_increment
Die Menge an Speicherplatz, die der Datei hinzugefügt wird, wenn neuer Speicherplatz erforderlich wird.Is the amount of space added to the file every time new space is required.

Der Wert kann in MB, KB, GB, TB oder Prozent (%) angegeben werden.The value can be specified in MB, KB, GB, TB, or percent (%). Bei Zahlen ohne Angabe von MB, KB oder % wird standardmäßig MB verwendet.If a number is specified without an MB, KB, or % suffix, the default is MB. Wenn der Wert in Prozent angegeben wird, ist die growth_increment-Größe der angegebene Prozentsatz der Dateigröße zum Zeitpunkt der Vergrößerung.When % is specified, the growth increment size is the specified percentage of the size of the file at the time the increment occurs. Die angegebene Größe wird auf den nächsten durch 64 KB gerundet, und der Mindestwert beträgt 64 KB.The size specified is rounded to the nearest 64 KB, and the minimum value is 64 KB.

Der Wert 0 zeigt an, dass die automatische Vergrößerung deaktiviert ist und kein zusätzlicher Platz zulässig ist.A value of 0 indicates that automatic growth is off and no additional space is allowed.

Ist FILEGROWTH nicht angegeben ist, sind die Standardwerte:If FILEGROWTH is not specified, the default values are:

VersionVersion StandardwerteDefault values
Anfang SQL Server 2016SQL Server 2016Beginning SQL Server 2016SQL Server 2016 Data 64 MB.Data 64 MB. Protokolldateien 64 MB.Log files 64 MB.
Anfang SQL Server 2005SQL Server 2005Beginning SQL Server 2005SQL Server 2005 Data 1 MB.Data 1 MB. Protokolldateien Sie 10 %.Log files 10%.
Vor dem SQL Server 2005SQL Server 2005Prior to SQL Server 2005SQL Server 2005 Daten 10 %.Data 10%. Protokolldateien Sie 10 %.Log files 10%.

<Dateigruppe ><filegroup>
Steuert die Dateigruppeneigenschaften.Controls the filegroup properties. Kann nicht in einer Datenbankmomentaufnahme angegeben werden.Filegroup cannot be specified on a database snapshot.

DATEIGRUPPE Filegroup_nameFILEGROUP filegroup_name
Der logische Name der Dateigruppe.Is the logical name of the filegroup.

filegroup_namefilegroup_name
Filegroup_name muss in der Datenbank eindeutig sein und darf nicht die vom System bereitgestellten Namen PRIMARY bzw. primary_log besitzen.filegroup_name must be unique in the database and cannot be the system-provided names PRIMARY and PRIMARY_LOG. Der Name kann eine Zeichen- oder Unicode-Konstante oder ein regulärer oder Begrenzungsbezeichner sein.The name can be a character or Unicode constant, or a regular or delimited identifier. Der Name muss den Regeln für entsprechen Bezeichner.The name must comply with the rules for identifiers.

CONTAINS FILESTREAMCONTAINS FILESTREAM
Gibt an, dass die Dateigruppe FILESTREAM-BLOBs (Binary Large Objects) im Dateisystem speichert.Specifies that the filegroup stores FILESTREAM binary large objects (BLOBs) in the file system.

CONTAINS MEMORY_OPTIMIZED_DATACONTAINS MEMORY_OPTIMIZED_DATA

Gilt für: SQL Server 2014SQL Server 2014 über SQL Server 2017SQL Server 2017Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017

Gibt an, dass die Dateigruppe speicheroptimierte Daten im Dateisystem speichert.Specifies that the filegroup stores memory_optimized data in the file system. Weitere Informationen finden Sie unter In-Memory OLTP (Arbeitsspeicheroptimierung).For more information, see In-Memory OLTP (In-Memory Optimization). Nur eine MEMORY_OPTIMIZED_DATA-Dateigruppe ist pro Datenbank zulässig.Only one MEMORY_OPTIMIZED_DATA filegroup is allowed per database. Codebeispiele, die eine Dateigruppe zum Speichern von speicheroptimierten Daten zu erstellen, finden Sie unter Erstellen einer speicheroptimierten Tabelle und einer systemintern kompilierten gespeicherten Prozedur.For code samples that create a filegroup to store memory-optimized data, see Creating a Memory-Optimized Table and a Natively Compiled Stored Procedure.

DEFAULTDEFAULT
Gibt an, dass die benannte Dateigruppe die Standarddateigruppe in der Datenbank ist.Specifies the named filegroup is the default filegroup in the database.

database_snapshot_namedatabase_snapshot_name
Der Name der neuen Datenbankmomentaufnahme.Is the name of the new database snapshot. Die Namen von Datenbankmomentaufnahmen müssen innerhalb einer Instanz von SQL ServerSQL Server eindeutig sein und den Regeln für Bezeichner entsprechen.Database snapshot names must be unique within an instance of SQL ServerSQL Server and comply with the rules for identifiers. Database_snapshot_name kann maximal 128 Zeichen sein.database_snapshot_name can be a maximum of 128 characters.

ON ( Namen = Logical_file_name, FILENAME = " physischer Dateiname") [ ,... n ]ON ( NAME =logical_file_name, FILENAME ='os_file_name') [ ,... n ]
Gibt für das Erstellen einer Datenbankmomentaufnahme eine Liste von Dateien in der Quelldatenbank an.For creating a database snapshot, specifies a list of files in the source database. Damit die Momentaufnahme funktionsfähig ist, müssen alle Datendateien einzeln angegeben werden.For the snapshot to work, all the data files must be specified individually. Protokolldateien sind jedoch für Datenbankmomentaufnahmen nicht zulässig.However, log files are not allowed for database snapshots. FILESTREAM-Dateigruppen werden von Datenbankmomentaufnahmen nicht unterstützt.FILESTREAM filegroups are not supported by database snapshots. Wenn eine FILESTREAM-Datendatei in eine CREATE DATABASE ON-Klausel eingeschlossen wird, schlägt die Anweisung fehl, und ein Fehler wird ausgelöst.If a FILESTREAM data file is included in a CREATE DATABASE ON clause, the statement will fail and an error will be raised.

Beschreibungen der NAME und FILENAME sowie deren Werte finden Sie in der Beschreibung die entsprechende <Filespec > Werte.For descriptions of NAME and FILENAME and their values see the descriptions of the equivalent <filespec> values.

Hinweis

Beim Erstellen einer Datenbank-Momentaufnahme, die andere <Filespec > Optionen und das PRIMARY-Schlüsselwort sind nicht zulässig.When you create a database snapshot, the other <filespec> options and the keyword PRIMARY are disallowed.

ALS SNAPSHOT OF Name der QuelldatenbankAS SNAPSHOT OF source_database_name
Gibt an, dass die Datenbank, die erstellt eine Datenbankmomentaufnahme der Quelldatenbank gemäß Name der Quelldatenbank.Specifies that the database being created is a database snapshot of the source database specified by source_database_name. Die Momentaufnahme- und Quelldatenbank müssen sich auf derselben Instanz befinden.The snapshot and source database must be on the same instance.

Weitere Informationen finden Sie im Abschnitt mit Hinweisen unter "Datenbankmomentaufnahmen".For more information, see "Database Snapshots" in the Remarks section.

HinweiseRemarks

Die master-Datenbank sollte gesichert werden, einrichten, wenn eine Benutzerdatenbank erstellt, geändert oder gelöscht wird.The master database should be backed up whenever a user database is created, modified, or dropped.

Die CREATE DATABASE-Anweisung muss im Autocommitmodus (dem Standardmodus für die Transaktionsverwaltung) ausgeführt werden und ist in einer expliziten oder impliziten Transaktion nicht zulässig.The CREATE DATABASE statement must run in autocommit mode (the default transaction management mode) and is not allowed in an explicit or implicit transaction.

Sie können mit einer CREATE DATABASE-Anweisung eine Datenbank und die Dateien erstellen, in denen die Datenbank gespeichert ist.You can use one CREATE DATABASE statement to create a database and the files that store the database. SQL ServerSQL Server implimiert die CREATE DATABASE-Anweisung, indem die folgenden Schritte ausgeführt werden: implements the CREATE DATABASE statement by using the following steps:

  1. Die SQL ServerSQL Server verwendet eine Kopie der Modelldatenbank zum Initialisieren der Datenbank und die zugehörigen Metadaten.The SQL ServerSQL Server uses a copy of the model database to initialize the database and its metadata.

  2. Der Datenbank wird eine Service Broker-GUID zugewiesen.A service broker GUID is assigned to the database.

  3. Dann füllt das DatenbankmodulDatabase Engine den Rest der Datenbank mit leeren Seiten auf, mit Ausnahme der Seiten mit internen Daten, in denen aufgezeichnet ist, wie der Speicherplatz in der Datenbank verwendet wird.The DatenbankmodulDatabase 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.

    Maximal 32.767 Datenbanken können auf einer Instanz von SQL ServerSQL Serverangegeben werden.A maximum of 32,767 databases can be specified on an instance of SQL ServerSQL Server.

    Jede Datenbank hat einen Besitzer, der besondere Aktivitäten in der Datenbank ausführen kann.Each database has an owner that can perform special activities in the database. Der Besitzer ist der Benutzer, der die Datenbank erstellt.The owner is the user that creates the database. Der Datenbankbesitzer kann geändert werden, mithilfe von Sp_changedbowner.The database owner can be changed by using sp_changedbowner.

Einige Funktionen hängen von Features oder Funktionen, die im Dateisystem für die vollständige Funktionalität einer Datenbank vorhanden.Some database features depend on features or capabilities present in the file system for full functionality of a database. Einige Beispiele für Funktionen, die Datei System Funktionsgruppe abhängig sind:Some examples of features that depend on file system feature set include:

  • DBCC CHECKDBDBCC CHECKDB
  • FileStreamFileStream
  • Onlinesicherungen Verwenden von VSS und Datei-MomentaufnahmenOnline backups using VSS and file snapshots
  • Erstellen von datenbankmomentaufnahmenDatabase snapshot creation
  • Arbeitsspeicher Speicheroptimierte DatendateigruppeMemory Optimized Data filegroup

Datenbankdateien und DateigruppenDatabase Files and Filegroups

Jede Datenbank verfügt über mindestens zwei Dateien über eine Primärdatei und ein Transaktionsprotokolldatei, und mindestens eine Dateigruppe.Every database has at least two files, a primary file and a transaction log file, and at least one filegroup. Für jede Datenbank können maximal 32.767 Dateien und 32.767 Dateigruppen angegeben werden.A maximum of 32,767 files and 32,767 filegroups can be specified for each database.

Wenn Sie eine Datenbank erstellen, sollten Sie die Datendateien so groß wie möglich orientieren Sie sich an den maximal zu erwartenden Datenmengen, die Sie in der Datenbank zu erwartenWhen you create a database, make the data files as large as possible based on the maximum amount of data you expect in the database

Wir empfehlen, dass Sie ein Storage Area Network (SAN), ein Netzwerk auf iSCSI-Basis oder einen lokal zugeordneten Datenträger für die Speicherung Ihrer SQL ServerSQL Server-Datenbankdateien verwenden, da bei dieser Konfiguration die Leistung und Zuverlässigkeit von SQL ServerSQL Server optimiert werden.We recommend that you use a Storage Area Network (SAN), iSCSI-based network, or locally attached disk for the storage of your SQL ServerSQL Server database files, because this configuration optimizes SQL ServerSQL Server performance and reliability.

Datenbank-MomentaufnahmenDatabase Snapshots

Können Sie die CREATE DATABASE-Anweisung, erstellen Sie eine schreibgeschützte, statische Sicht einer Datenbankmomentaufnahme von der Quelldatenbank.You can use the CREATE DATABASE statement to create a read-only, static view, a database snapshot of the source database. Ein Datenbank-Momentaufnahme ist im Hinblick auf Transaktionen konsistent mit der Quelldatenbank zu dem Zeitpunkt, an dem die Momentaufnahme erstellt wurde.A database snapshot is transactionally consistent with the source database as it existed at the time when the snapshot was created. Für eine Quelldatenbank kann es mehrere Momentaufnahmen geben.A source database can have multiple snapshots.

Hinweis

Wenn Sie eine Datenbankmomentaufnahme erstellen, kann die CREATE DATABASE-Anweisung nicht auf Protokolldateien, Offlinedateien, Wiederherstellungsdateien und außer Kraft gesetzte Dateien verweisen.When you create a database snapshot, the CREATE DATABASE statement cannot reference log files, offline files, restoring files, and defunct files.

Wenn das Erstellen einer Datenbankmomentaufnahme fehlschlägt, wird der Snapshot fehlerverdächtig und muss gelöscht werden.If creating a database snapshot fails, the snapshot becomes suspect and must be deleted. Weitere Informationen finden Sie unter DROP DATABASE ( Transact-SQL ) .For more information, see DROP DATABASE (Transact-SQL).

Jede Momentaufnahme wird so lange persistent gespeichert, bis sie mit DROP DATABASE gelöscht wird.Each snapshot persists until it is deleted by using DROP DATABASE.

Weitere Informationen finden Sie unter Datenbankmomentaufnahmen (SQL Server).For more information, see Database Snapshots (SQL Server).

DatenbankoptionenDatabase Options

Mehrere Datenbankoptionen werden automatisch festgelegt, wenn Sie eine Datenbank erstellen.Several database options are automatically set whenever you create a database. Eine Liste dieser Optionen finden Sie ALTER DATABASE SET-Optionen ( Transact-SQL ) .For a list of these options, see ALTER DATABASE SET Options (Transact-SQL).

Die model-Datenbank und das Erstellen neuer DatenbankenThe model Database and Creating New Databases

Alle benutzerdefinierten Objekte in der Modelldatenbank in alle neu erstellten Datenbanken kopiert werden.All user-defined objects in the model database are copied to all newly created databases. Sie können der model-Datenbank beliebige Objekte (z. B. Tabellen, Sichten, gespeicherte Prozeduren, Datentypen usw.) hinzufügen, die in allen neu erstellten Datenbanken enthalten sein sollen.You can add any objects, such as tables, views, stored procedures, data types, and so on, to the model database to be included in all newly created databases.

Wenn eine CREATE DATABASE Database_name Anweisung ohne zusätzliche Größenparameter angegeben wird die primäre Datendatei die gleiche Größe wie die primäre Datei in der Model-Datenbank vorgenommen.When a CREATE DATABASE database_name statement is specified without additional size parameters, the primary data file is made the same size as the primary file in the model database.

Jede neue Datenbank erbt die Einstellungen der Datenbankoptionen von der model-Datenbank, es sei denn, FOR ATTACH ist angegeben.Unless FOR ATTACH is specified, each new database inherits the database option settings from the model database. Z. B. die Option Automatisches Verkleinern der Datenbank festgelegt ist, um "true" im Modell und in allen neuen Datenbanken, die Sie erstellen.For example, the database option auto shrink is set to true in model and in any new databases you create. Wenn Sie die Optionen in der model-Datenbank ändern, werden diese neuen Einstellungen in jeder neu erstellten Datenbank verwendet.If you change the options in the model database, these new option settings are used in any new databases you create. Änderungen in der model-Datenbank haben jedoch keine Auswirkungen auf vorhandene Datenbanken.Changing operations in the model database does not affect existing databases. Wenn FOR ATTACH in der CREATE DATABASE-Anweisung angegeben ist, erbt die neue Datenbank die Einstellungen der Datenbankoptionen der ursprünglichen Datenbank.If FOR ATTACH is specified on the CREATE DATABASE statement, the new database inherits the database option settings of the original database.

Anzeigen von DatenbankinformationenViewing Database Information

Sie können Katalogsichten, Systemfunktionen und gespeicherte Systemprozeduren verwenden, um Informationen zu Datenbanken, Dateien und Dateigruppen zurückzugeben.You can use catalog views, system functions, and system stored procedures to return information about databases, files, and filegroups. Weitere Informationen finden Sie unter Systemsichten (Transact-SQL).For more information, see System Views (Transact-SQL).

BerechtigungenPermissions

Erfordert die Berechtigung CREATE DATABASE, CREATE ANY DATABASE oder ALTER ANY DATABASE.Requires CREATE DATABASE, CREATE ANY DATABASE, or ALTER ANY DATABASE permission.

Zur Steuerung der Datenträgernutzung einer Instanz von SQL ServerSQL Serverwird die Berechtigung zum Erstellen von Datenbanken in der Regel auf einige wenige Anmeldekonten beschränkt.To maintain control over disk use on an instance of SQL ServerSQL Server, permission to create databases is typically limited to a few login accounts.

Im folgenden Beispiel wird dem Datenbankbenutzer Fay die Berechtigung zum Erstellen einer Datenbank erteilt.The following example provides the permission to create a database to the database user Fay.

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

Berechtigungen für Daten und ProtokolldateienPermissions on Data and Log Files

In SQL ServerSQL Server werden Berechtigungen für die Daten und Protokolldateien der einzelnen Datenbanken festgelegt.In SQL ServerSQL Server, certain permissions are set on the data and log files of each database. Die folgenden Berechtigungen werden stets festgelegt, wenn die folgenden Vorgänge auf eine Datenbank angewendet werden:The following permissions are set whenever the following operations are applied to a database:

ErstelltCreated Ändern, um eine neue Datei hinzuzufügenModified to add a new file
AngefügtAttached GesichertBacked up
GetrenntDetached WiederherstellenRestored

Durch die Berechtigungen wird verhindert, dass die Dateien versehentlich manipuliert werden, wenn sie sich in einem Verzeichnis mit offenen Berechtigungen befinden.The permissions prevent the files from being accidentally tampered with if they reside in a directory that has open permissions.

Hinweis

MicrosoftMicrosoft SQL Server 2005 Express EditionSQL Server 2005 Express Edition legt keine Berechtigungen für Daten und Protokolldateien fest. SQL Server 2005 Express EditionSQL Server 2005 Express Edition does not set data and log file permissions.

BeispieleExamples

A.A. Erstellen einer Datenbank ohne Angabe von DateienCreating a database without specifying files

Mit dem folgenden Beispiel werden die Datenbank mytest sowie eine entsprechende primäre Datei und Transaktionsprotokolldatei erstellt.The following example creates the database mytest and creates a corresponding primary and transaction log file. Da die Anweisung keine <Filespec > Elemente, die primäre Datenbankdatei ist die Größe der primären modelldatenbankdatei.Because the statement has no <filespec> items, the primary database file is the size of the model database primary file. Für das Transaktionsprotokoll wird der größere der beiden folgenden Werte festgelegt: 512 KB oder 25 Prozent der Größe der primären Datendatei.The transaction log is set to the larger of these values: 512KB or 25% the size of the primary data file. Da MAXSIZE nicht angegeben ist, können die Dateien so lange vergrößert werden, bis der gesamte verfügbare Speicherplatz auf dem Datenträger gefüllt ist.Because MAXSIZE is not specified, the files can grow to fill all available disk space. Dieses Beispiel zeigt auch, wie Sie die Datenbank mit dem Namen mytest, falls vorhanden, vor dem Erstellen der Datenbank mytest löschen.This example also demonstrates how to drop the database named mytest if it exists, before creating the mytest database.

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.B. Erstellen einer Datenbank mit Angabe der Datendatei und der TransaktionsprotokolldateiCreating a database that specifies the data and transaction log files

Im folgenden Beispiel wird die Datenbank mit dem Namen Sales erstellt.The following example creates the database Sales. Da das PRIMARY-Schlüsselwort nicht verwendet wird, wird die erste Datei (Sales_dat) zur primären Datei.Because the keyword PRIMARY is not used, the first file (Sales_dat) becomes the primary file. Da im SIZE-Parameter für die Datei Sales_dat weder MB noch KB angegeben ist, wird die Einheit MB verwendet und in Megabyte zugeordnet.Because neither MB nor KB is specified in the SIZE parameter for the Sales_dat file, it uses MB and is allocated in megabytes. Die Sales_log wird in Megabyte zugeordnet, weil das Suffix MB explizit im SIZE -Parameter angegeben ist.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\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf',  
    SIZE = 10,  
    MAXSIZE = 50,  
    FILEGROWTH = 5 )  
LOG ON  
( NAME = Sales_log,  
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf',  
    SIZE = 5MB,  
    MAXSIZE = 25MB,  
    FILEGROWTH = 5MB ) ;  
GO  

C.C. Erstellen einer Datenbank unter Angabe mehrerer Daten- und TransaktionsprotokolldateienCreating a database by specifying multiple data and transaction log files

Mit dem folgenden Beispiel wir die Archive-Datenbank erstellt, die über drei Datendateien mit 100-MB und zwei Transaktionsprotokolldateien mit 100-MB verfügt.The following example creates the database Archive that has three 100-MB data files and two 100-MB transaction log files. Die primäre Datei ist die erste Datei in der Liste und wird explizit mit dem PRIMARY-Schlüsselwort angegeben.The primary file is the first file in the list and is explicitly specified with the PRIMARY keyword. Die Transaktionsprotokolldateien werden nach den LOG ON-Schlüsselwörtern angegeben.The transaction log files are specified following the LOG ON keywords. Beachten Sie die Erweiterungen, die für die Dateien in der Option FILENAME verwendet werden: .mdf wird für primäre Datendateien verwendet, .ndf wird für sekundäre Datendateien verwendet, und .ldf wird für Transaktionsprotokolldateien verwendet.Note the extensions used for the files in the FILENAME option: .mdf is used for primary data files, .ndf is used for the secondary data files, and .ldf is used for transaction log files. In diesem Beispiel wird die Datenbank auf dem Laufwerk D: abgelegt, anstatt an demselben Speicherort wie die master-Datenbank.This example places the database on the D: drive instead of with the master database.

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.D. Erstellen einer Datenbank mit DateigruppenCreating a database that has filegroups

Im folgenden Beispiel wird die Sales-Datenbank erstellt, die über folgende Dateigruppen verfügt:The following example creates the database Sales that has the following filegroups:

  • Die primäre Dateigruppe mit den Dateien Spri1_dat und Spri2_dat.The primary filegroup with the files Spri1_dat and Spri2_dat. Die FILEGROWTH-Inkremente für diese Dateien werden mit 15% angegeben.The FILEGROWTH increments for these files are specified as 15%.

  • Eine Dateigruppe mit dem Namen SalesGroup1 mit den Dateien SGrp1Fi1 und SGrp1Fi2.A filegroup named SalesGroup1 with the files SGrp1Fi1 and SGrp1Fi2.

  • Eine Dateigruppe mit dem Namen SalesGroup2 mit den Dateien SGrp2Fi1 und SGrp2Fi2.A filegroup named SalesGroup2 with the files SGrp2Fi1 and SGrp2Fi2.

    In diesem Beispiel werden die Daten und Protokolldateien auf verschiedenen Datenträgern angeordnet, um die Leistung zu verbessern.This example places the data and log files on different disks to improve performance.

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.E. Anfügen einer DatenbankAttaching a database

Im folgenden Beispiel wird die in Beispiel D erstellte Archive-Datenbank gelöst und dann mithilfe der FOR ATTACH-Klausel angefügt.The following example detaches the database Archive created in example D, and then attaches it by using the FOR ATTACH clause. Archive wurde so definiert, dass mehrere Daten- und Protokolldateien vorhanden sind.Archive was defined to have multiple data and log files. Da sich jedoch der Speicherort der Dateien seit ihrem Erstellen nicht geändert hat, muss nur die primäre Datei in der FOR ATTACH-Klausel angegeben werden.However, because the location of the files has not changed since they were created, only the primary file has to be specified in the FOR ATTACH clause. Ab Version SQL Server 2005SQL Server 2005 werden alle Volltextdateien, die zur angefügten Datenbank gehören, mit der Datenbank angefügt.Beginning with SQL Server 2005SQL Server 2005, any full-text files that are part of the database that is being attached will be attached with the database.

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

F.F. Erstellen einer DatenbankmomentaufnahmeCreating a database snapshot

Das folgende Beispiel erstellt die Datenbank-Momentaufnahme sales_snapshot0600.The following example creates the database snapshot sales_snapshot0600. Da eine Datenbankmomentaufnahme schreibgeschützt ist, kann keine Protokolldatei angegeben werden.Because a database snapshot is read-only, a log file cannot be specified. In Übereinstimmung mit der Syntax wird jede Datei in der Quelldatenbank angegeben, Dateigruppen werden nicht angegeben.In conformance with the syntax, every file in the source database is specified, and filegroups are not specified.

Die Quelldatenbank für dieses Beispiel ist die Sales-Datenbank, die in Beispiel D erstellt wurde.The source database for this example is the Sales database created in example 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.G. Erstellen einer Datenbank, Angeben eines Sortierungsnamens und Angeben von OptionenCreating a database and specifying a collation name and options

Im folgenden Beispiel wird die Datenbank mit dem Namen MyOptionsTest erstellt.The following example creates the database MyOptionsTest. Ein Sortierungsname wird angegeben, und für die Optionen TRUSTYWORTHY und DB_CHAINING wird ON festgelegt.A collation name is specified and the TRUSTYWORTHY and DB_CHAINING options are set to 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.H. Anhängen eines Volltextkatalogs, der verschoben wurdeAttaching a full-text catalog that has been moved

Im folgenden Beispiel wird der Volltextkatalog AdvWksFtCat zusammen mit den Daten und Protokolldateien von AdventureWorks2012 angefügt.The following example attaches the full-text catalog AdvWksFtCat along with the AdventureWorks2012 data and log files. In diesem Beispiel wird der Volltextkatalog vom Standardspeicherort an den neuen Speicherort c:\myFTCatalogs verschoben.In this example, the full-text catalog is moved from its default location to a new location c:\myFTCatalogs. Die Daten- und Protokolldateien bleiben an ihrem jeweiligen Standardspeicherort.The data and log files remain in their default locations.

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

I.I. Erstellen einer Datenbank, die eine Zeilendateigruppe und zwei FILESTREAM-Dateigruppen angibtCreating a database that specifies a row filegroup and two FILESTREAM filegroups

Im folgenden Beispiel wird die FileStreamDB-Datenbank erstellt.The following example creates the FileStreamDB database. Die Datenbank wird mit einer Zeilendateigruppe und zwei FILESTREAM-Dateigruppen erstellt.The database is created with one row filegroup and two FILESTREAM filegroups. Jede Dateigruppe enthält eine Datei:Each filegroup contains one file:

  • FileStreamDB_data enthält Zeilendaten.FileStreamDB_data contains row data. Darin enthalten ist eine Datei FileStreamDB_data.mdf mit dem Standardpfad.It contains one file, FileStreamDB_data.mdf with the default path.

  • FileStreamPhotos enthält FILESTREAM-Daten.FileStreamPhotos contains FILESTREAM data. Darin enthalten sind zwei FILESTREAM-Datencontainer: FSPhotos unter C:\MyFSfolder\Photos und FSPhotos2 unter D:\MyFSfolder\Photos.It contains two FILESTREAM data containers, FSPhotos, located at C:\MyFSfolder\Photos and FSPhotos2, located at D:\MyFSfolder\Photos. Er ist als FILESTREAM-Standarddateigruppe gekennzeichnet.It is marked as the default FILESTREAM filegroup.

  • FileStreamResumes enthält FILESTREAM-Daten.FileStreamResumes contains FILESTREAM data. Darin enthalten ist ein FILESTREAM-Datencontainer FSResumes, der sich unter C:\MyFSfolder\Resumes befindet.It contains one FILESTREAM data container, FSResumes, located at C:\MyFSfolder\Resumes.

USE master;  
GO  
-- Get the SQL Server data path.  
DECLARE @data_path nvarchar(256);  
SET @data_path = (SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)  
                  FROM master.sys.master_files  
                  WHERE database_id = 1 AND file_id = 1);  

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

J.J. Erstellen einer Datenbank mit einer FILESTREAM-Dateigruppe mit mehreren DateienCreating a database that has a FILESTREAM filegroup with multiple files

Im folgenden Beispiel wird die BlobStore1-Datenbank erstellt.The following example creates the BlobStore1 database. Die Datenbank wird mit einer Zeilendateigruppe und einer FILESTREAM-Dateigruppe, FS, erstellt.The database is created with one row filegroup and one FILESTREAM filegroup, FS. Die FILESTREAM-Dateigruppe enthält die beiden Dateien FS1 und FS2.The FILESTREAM filegroup contains two files, FS1 and FS2. Dann wird die Datenbank durch das Hinzufügen der dritten Datei FS3 zur FILESTREAM-Dateigruppe geändert.Then the database is altered by adding a third file, FS3, to the FILESTREAM filegroup.

USE master;  
GO  

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

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

Siehe auchSee Also

ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Anfügen und Trennen von Datenbanken (SQL Server) Database Detach and Attach (SQL Server)
DROP DATABASE (Transact-SQL) DROP DATABASE (Transact-SQL)
EVENTDATA (Transact-SQL) EVENTDATA (Transact-SQL)
Sp_changedbowner ( Transact-SQL ) sp_changedbowner (Transact-SQL)
Sp_detach_db ( Transact-SQL ) sp_detach_db (Transact-SQL)
Sp_removedbreplication ( Transact-SQL ) sp_removedbreplication (Transact-SQL)
Datenbank-Momentaufnahmen (SQL Server) Database Snapshots (SQL Server)
Verschieben von Datenbankdateien Move Database Files
Datenbanken Databases
Binary Large Object (Blob) Daten (SQL Server)Binary Large Object (Blob) Data (SQL Server)