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.
Wichtig |
---|
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. |
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_dboptiondie aktuelle Einstellung zurück. value kann true, false, on oder off sein. value ist vom Datentyp varchar(10) und hat den 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 MicrosoftSQL 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.
Wichtig
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 AdventureWorks-Datenbank.
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'TRUE';
B. Deaktivieren einer Option
Das folgende Beispiel hebt den Schreibschutz für die AdventureWorks-Datenbank wieder auf.
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'FALSE';