sp_dboption (Transact-SQL)

Zeigt Datenbankoptionen an oder ändert sie. Verwenden Sie nicht sp_dboption zum Ändern von Optionen in der master-Datenbank oder der tempdb-Datenbank.

Wichtiger HinweisWichtig

Diese Funktion wird in der nächsten Version von Microsoft SQL Server entfernt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie so bald wie möglich das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen ALTER DATABASE. Zum Ändern von Datenbankoptionen, die sich auf Replikation beziehen (merge publish, published, subscribed), verwenden Sie sp_replicationdboption.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

sp_dboption [ [ @dbname = ] 'database' ] 
    [ , [ @optname = ] 'option_name' ] 
    [ , [ @optvalue = ] 'value' ] 
[;]

Argumente

  • [ @dbname= ] 'database'
    Der Name der Datenbank, in der die angegebene Option festgelegt werden soll. database ist vom Datentyp sysname; der Standardwert ist NULL.

  • [ @optname= ] 'option_name'
    Der Name der festzulegenden Option. Sie müssen nicht den vollständigen Optionsnamen eingeben. SQL Server erkennt jeden Teil des Namens, der eindeutig ist. Schließen Sie den Optionsnamen in Anführungszeichen ein, wenn dieser Leerzeichen enthält oder ein Schlüsselwort ist. Wenn dieser Parameter nicht angegeben wird, listet sp_dboption die aktivierten Optionen auf. option_name ist vom Datentyp varchar(35) und hat den Standardwert NULL.

  • [ @optvalue=] 'value'
    Die neue Einstellung für option_name. Wenn dieser Parameter nicht angegeben wird, gibt sp_dboption die aktuelle Einstellung zurück. value kann true, false, on oder off sein. value ist varchar(10) mit dem Standardwert NULL.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Die folgende Tabelle zeigt, wie das Resultset aussieht, wenn keine Parameter angegeben werden.

Spaltenname

Datentyp

Beschreibung

Settable database options

nvarchar(35)

Alle festlegbaren Datenbankoptionen.

Die folgende Tabelle zeigt, wie das Resultset aussieht, wenn database als einziger Parameter angegeben wird.

Spaltenname

Datentyp

Beschreibung

The following options are set:

nvarchar(35)

Die für die angegebene Datenbank festgelegten Optionen.

Die folgende Tabelle zeigt, wie das Resultset aussieht, wenn option_name angegeben wird.

Spaltenname

Datentyp

Beschreibung

OptionName

nvarchar(35)

Name der Option

CurrentSetting

char(3)

Gibt an, ob die Option aktiviert oder deaktiviert ist

Wenn value angegeben wird, gibt sp_dboption kein Resultset zurück.

Hinweise

Die folgende Tabelle führt die von sp_dboption festgelegten Optionen auf. Weitere Informationen zu den einzelnen Optionen finden Sie unter Festlegen von Datenbankoptionen.

Option

Beschreibung

auto create statistics

Bei true werden fehlende Statistiken, die von einer Abfrage zur Optimierung benötigt werden, automatisch während der Optimierung erstellt. Weitere Informationen finden Sie unter CREATE STATISTICS (Transact-SQL).

auto update statistics

Bei true werden veraltete Statistiken, die von einer Abfrage zur Optimierung benötigt werden, automatisch während der Optimierung aktualisiert. Weitere Informationen finden Sie unter UPDATE STATISTICS (Transact-SQL).

autoclose

Bei true wird die Datenbank heruntergefahren, und die Ressourcen werden freigegeben, wenn sich der letzte Benutzer abgemeldet hat.

autoshrink

Bei true werden die Datenbankdateien zu Kandidaten für die automatische regelmäßige Verkleinerung.

ANSI null default

Bei true bestimmt CREATE TABLE anhand der ISO-Regeln, ob eine Spalte Nullwerte zulässt.

ANSI nulls

Bei true ergeben alle Vergleiche mit einem Nullwert UNKNOWN. Bei false ergeben Vergleiche von Nicht-UNICODE-Werten mit einem Nullwert TRUE, wenn beide Werte NULL sind.

ANSI warnings

Bei true werden Fehler und Warnungen ausgegeben, wenn z. B. ein Fehler wegen "Division durch Null" auftritt.

arithabort

Bei true bewirkt ein Überlauffehler oder ein Fehler aufgrund einer Division durch Null, dass die Abfrage oder der Batch beendet wird. Tritt der Fehler in einer Transaktion auf, so wird für die Transaktion ein Rollback durchgeführt. Bei false wird eine Warnmeldung angezeigt, aber die Abfrage, der Batch oder die Transaktion werden fortgesetzt, als wäre kein Fehler aufgetreten.

concat null yields null

Bei true lautet das Ergebnis NULL, wenn einer der Operanden bei einer Verkettungsoperation NULL ist.

cursor close on commit

Bei true werden alle Cursor geschlossen, die geöffnet sind, wenn für eine Transaktion ein Commit oder ein Rollback ausgeführt wird. Bei false bleiben diese Cursor geöffnet, wenn für eine Transaktion ein Commit ausgeführt wird. Bei false werden beim Rollback einer Transaktion alle außer den als INSENSITIVE oder STATIC definierten Cursorn geschlossen.

dbo use only

Bei true kann nur der Datenbankbesitzer die Datenbank verwenden.

default to local cursor

Bei true werden Cursordeklarationen standardmäßig auf LOCAL festgelegt.

merge publish

Bei true kann die Datenbank für eine Mergereplikation veröffentlicht werden.

numeric roundabort

Bei true wird ein Fehler generiert, wenn ein Genauigkeitsverlust in einem Ausdruck auftritt. Bei false werden bei Genauigkeitsverlusten keine Fehlermeldungen generiert, und das Ergebnis wird auf die Genauigkeit der Spalte oder Variablen gerundet, die das Ergebnis speichert.

offline

Bei true (on) ist die Datenbank offline. Bei false (off) ist die Datenbank online.

published

Bei true kann die Datenbank für die Replikation veröffentlicht werden.

quoted identifier

Bei true dürfen doppelte Anführungszeichen verwendet werden, um begrenzte Bezeichner einzuschließen.

read only

Bei true können Benutzer die Daten in der Datenbank nur lesen. Benutzer können die Daten oder Datenbankobjekte nicht ändern, die Datenbank selbst kann jedoch mithilfe der DROP DATABASE-Anweisung gelöscht werden. Die Datenbank darf nicht verwendet werden, wenn ein neuer Wert für value für die read only-Option angegeben wird. Die master-Datenbank stellt eine Ausnahme dar, und nur der Systemadministrator darf die master-Datenbank verwenden, während die read only-Option festgelegt wird.

recursive triggers

Bei true wird das rekursive Auslösen von Triggern aktiviert. Bei false wird nur die direkte Rekursion verhindert. Um die indirekte Rekursion zu deaktivieren, legen Sie die Serveroption nested triggers mithilfe von sp_configure auf 0 fest.

select into/bulkcopy

Ab Microsoft SQL Server 2000 wird das Wiederherstellungsmodell der Datenbank, wenn es auf FULL festgelegt ist, durch die Verwendung der Option select into/bulkcopy auf BULK_LOGGED zurückgesetzt. Der richtige Weg zum Ändern des Wiederherstellungsmodells ist die Verwendung der SET RECOVERY-Klausel der ALTER DATABASE-Anweisung.

single user

Bei true kann jeweils immer nur ein Benutzer auf die Datenbank zugreifen.

subscribed

Bei true kann die Datenbank für die Veröffentlichung abonniert werden.

torn page detection

Bei true können unvollständige Seiten erkannt werden.

trunc. log on chkpt.

Bei true schneidet ein Prüfpunkt den inaktiven Teil des Protokolls ab, wenn sich die Datenbank im Protokollabschneidemodus befindet. Dies ist die einzige Option, die Sie für die master-Datenbank festlegen können.

Wichtiger HinweisWichtig
Seit der Version SQL Server 2000 wird durch Festlegen der Option trunc. log on chkpt. auf true das Wiederherstellungsmodell der Datenbank auf SIMPLE festgelegt. Durch Festlegen der Option auf false wird das Wiederherstellungsmodell auf FULL festgelegt.

Der Datenbankbesitzer oder der Systemadministrator kann bestimmte Datenbankoptionen für alle neuen Datenbanken durch Ausführen von sp_dboption in der model-Datenbank festlegen bzw. deaktivieren.

Nach der Ausführung von sp_dboption wird ein Prüfpunkt in der Datenbank ausgeführt, für die die Option geändert wurde. Dadurch wird die Änderung sofort wirksam.

sp_dboption ändert die Einstellungen für eine Datenbank. Ändern Sie Einstellungen auf Serverebene mit sp_configure. Verwenden Sie die SET-Anweisung, um Einstellungen zu ändern, die nur die aktuelle Sitzung betreffen.

Berechtigungen

Zum Anzeigen der vollständigen Liste der Datenbankoptionen und deren aktuellen Werten ist die Mitgliedschaft in der public-Rolle erforderlich. Zum Ändern eines Wertes für eine Datenbankoption ist die Mitgliedschaft in der festen Datenbankrolle db_owner erforderlich.

Beispiele

A. Aktivieren des Schreibschutzes für eine Datenbank

Das folgende Beispiel aktiviert den Schreibschutz für die AdventureWorks2008R2-Datenbank.

USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'TRUE';

B. Deaktivieren einer Option

Das folgende Beispiel hebt den Schreibschutz für die AdventureWorks2008R2-Datenbank wieder auf.

USE master;
GO
EXEC sp_dboption 'AdventureWorks2008R2', 'read only', 'FALSE';