sp_add_data_file_recover_suspect_db (Transact-SQL)

Fügt einer Dateigruppe eine Datendatei hinzu, wenn die Wiederherstellung für eine Datenbank wegen unzureichendem Speicherplatzes (Fehler 1105) für die Dateigruppe nicht ausgeführt werden kann. Nachdem die Datei hinzugefügt wurde, deaktiviert diese gespeicherte Prozedur die Einstellung, die die Datenbank als fehlerverdächtig kennzeichnet, und führt die Wiederherstellung der Datenbank durch. Die Parameter sind dieselben wie für ALTER DATABASE database_name ADD FILE.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_add_data_file_recover_suspect_db [ @dbName= ] 'database' 
        , [ @filegroup = ] 'filegroup_name' 
        , [ @name = ] 'logical_file_name' 
        , [ @filename= ] 'os_file_name' 
        , [ @size = ] 'size' 
        , [ @maxsize = ] 'max_size' 
        , [ @filegrowth = ] 'growth_increment'

Argumente

  • [ @dbName= ] **'**database '
    Der Name der Datenbank. database ist vom Datentyp sysname und hat keinen Standardwert.

  • [ @filegroup= ] **'**filegroup_name '
    Die Dateigruppe, der die Datei hinzugefügt werden soll. filegroup_name ist vom Datentyp nvarchar(260) und hat den Standardwert NULL, der die primäre Datei angibt.

  • [ @name= ] **'**logical_file_name '
    Der Name, der in SQL Server 2005-Datenbankmodul zum Verweis auf die Datei verwendet wird. Der Name muss auf dem Server eindeutig sein. logical_file_name ist vom Datentyp nvarchar(260) und hat keinen Standardwert.

  • [ @filename= ] **'**os_file_name '
    Der Pfad und der Dateiname, die vom Betriebssystem für die Datei verwendet werden. Die Datei muss sich auf einer Instanz des Database Engine (Datenbankmodul)s befinden. os_file_name ist vom Datentyp nvarchar(260) und besitzt keinen Standardwert.

  • [ @size= ] **'**size '
    Die Anfangsgröße der Datei. size ist vom Datentyp nvarchar(20) und hat den Standardwert NULL. Geben Sie eine ganze Zahl (also ohne Dezimalstellen) an. Die Suffixe MB und KB können verwendet werden, um Megabyte bzw. Kilobyte als Einheit anzugeben. Der Standardwert ist MB. Der Mindestwert ist 512 KB. Ist size nicht angegeben, beträgt der Standardwert 1 MB.

  • [ @maxsize= ] **'**max_size '
    Die maximale Größe, die die Datei erreichen kann. max_size ist vom Datentyp nvarchar(20) und hat den Standardwert NULL. Geben Sie eine ganze Zahl (also ohne Dezimalstellen) an. Die Suffixe MB und KB können verwendet werden, um Megabyte bzw. Kilobyte als Einheit anzugeben. Der Standardwert ist MB.

    Wenn max_size nicht angegeben ist, kann die Datei so lange vergrößert werden, bis der Speicherplatz auf dem Datenträger erschöpft ist. Das Anwendungsprotokoll von Microsoft Windows warnt den Administrator, bevor der Speicherplatz auf einem Datenträger erschöpft ist.

  • [ @filegrowth= ] **'**growth_increment '
    Der Speicherplatz, der der Datei hinzugefügt wird, wenn neuer Speicherplatz erforderlich wird. growth_increment ist vom Datentyp nvarchar(20) und hat den Standardwert NULL. Durch den Wert 0 wird angezeigt, dass die Datei nicht vergrößert wird. Geben Sie eine ganze Zahl (also ohne Dezimalstellen) an. Der Wert kann in MB, KB oder Prozent (%) angegeben werden. Wenn der Wert in Prozent angegeben wird, ist growth increment der angegebene Prozentsatz der Dateigröße zum Zeitpunkt der Vergrößerung. Bei Zahlen ohne Angabe von MB, KB oder % wird standardmäßig MB verwendet.

    Falls growth_increment auf NULL festgelegt wird, ist der Standardwert 10 % und der Mindestwert 64 KB. Die angegebene Größe wird auf den nächsten durch 64 KB teilbaren Wert gerundet.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Berechtigungen

Die Ausführungsberechtigungen erhalten standardmäßig Mitglieder der festen Serverrolle sysadmin. Diese Berechtigungen sind nicht übertragbar.

Beispiele

Im folgenden Beispiel wurde die db1-Datenbank bei der Wiederherstellung aufgrund unzureichenden Speicherplatzes (Fehler 1105) in der fg1-Dateigruppe als fehlerverdächtig gekennzeichnet.

USE master;
GO
EXEC sp_add_data_file_recover_suspect_db db1, fg1, file2,
    'C:\Program Files\Microsoft SQL     Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\db1_file2.mdf', '1MB';