sp_dboption (Transact-SQL)

Affiche ou modifie les options de base de données. N'utilisez pas sp_dboption pour modifier les options de la base de données master ou tempdb.

Important

Cette fonctionnalité sera supprimée dans la prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et modifiez dès que possible les applications qui utilisent actuellement cette fonctionnalité. Utilisez plutôt ALTER DATABASE. Pour modifier les options de base de données associées à la réplication (merge publish, published et subscribed), utilisez sp_replicationdboption.

Icône Lien de rubriqueConventions de syntaxe de Transact-SQL

Syntaxe

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

Arguments

  • [ @dbname= ] 'database'
    Nom de la base de données dans laquelle définir l'option spécifiée. database est de type sysname, avec NULL comme valeur par défaut.

  • [ @optname= ] 'option_name'
    Nom de l'option que vous voulez paramétrer. Vous n'avez pas besoin d'entrer le nom complet de l'option. SQL Server reconnaît n'importe quelle partie du nom qui est unique. Encadrez le nom d'option de guillemets lorsque ce nom comporte des espaces ou s'il s'agit d'un mot clé. Si vous omettez ce paramètre, sp_dboption dresse la liste des options activées. option_name est de type varchar(35), avec NULL comme valeur par défaut.

  • [ @optvalue=] 'value'
    Nouveau paramètre pour option_name. Si ce paramètre est omis, sp_dboptionretourne la valeur actuelle. value peut être true, false, onou off. value est varchar(10), avec NULL comme valeur par défaut.

Valeurs des codes de retour

0 (succès) ou 1 (échec)

Jeux de résultats

Le tableau suivant montre le jeu de résultats obtenu lorsqu'aucun paramètre n'est fourni.

Nom de colonne

Type de données

Description

Options possibles de la base de données

nvarchar(35)

Toutes les options de base de données paramétrables.

Le tableau suivant montre le jeu de résultats obtenu lorsque database est le seul paramètre fourni.

Nom de colonne

Type de données

Description

Les options suivantes sont activées :

nvarchar(35)

Liste des options de base de données définies pour la base de données spécifiée.

Le tableau suivant montre le jeu de résultats obtenu lorsque option_name est fourni.

Nom de colonne

Type de données

Description

OptionName

nvarchar(35)

Nom de l'option.

CurrentSetting

char(3)

État activé ou désactivé de l'option.

Si vous fournissez value, sp_dboption ne retourne pas de jeu de résultats.

Notes

Le tableau suivant répertorie les options définies par sp_dboption. Pour plus d'informations sur chaque option, consultez Définition des options de base de données.

Option

Description

auto create statistics

Si la valeur de cette option est true, les statistiques manquantes, requises par une requête pour l'optimisation, sont créées automatiquement durant l'optimisation. Pour plus d'informations, consultez CREATE STATISTICS (Transact-SQL).

auto update statistics

Si la valeur de cette option est true, les statistiques non mises à jour, requises par une requête pour l'optimisation, sont créées automatiquement durant l'optimisation. Pour plus d'informations, consultez UPDATE STATISTICS (Transact-SQL).

autoclose

Si la valeur de cette option est true, la base de données est arrêtée proprement et ses ressources sont libérées dès que le dernier utilisateur s'est déconnecté.

autoshrink

Si la valeur de cette option est true, les fichiers de base de données sont candidats à un compactage automatique périodique.

ANSI null default

Si la valeur de cette option est true, CREATE TABLE suit les règles ISO afin de déterminer si une colonne autorise les valeurs Null.

valeurs ANSI NULL

Si la valeur de cette option est true, toutes les comparaisons à une valeur NULL sont évaluées à inconnu (UNKNOWN). Si la valeur de cette option est false, les comparaisons de valeurs non UNICODE à une valeur NULL sont évaluées à TRUE si les deux valeurs sont NULL.

ANSI warnings

Si la valeur de cette option est true, des erreurs ou avertissements sont émis si des conditions telles que « division par zéro » sont vérifiées.

arithabort

Si la valeur de cette option est true, un dépassement de capacité ou une division par zéro provoquent l'arrêt du traitement de la requête ou du lot d'instructions. Si l'erreur se produit dans une transaction, cette dernière est restaurée. Si la valeur de cette option est false, un message d'avertissement s'affiche, mais le traitement de la requête, du lot d'instructions ou de la transaction se poursuit, comme s'il n'y avait pas d'erreur.

concat null yields null

Si la valeur de cette option est true, le résultat est NULL si l'un des deux opérandes de l'opération de concaténation est NULL.

cursor close on commit

Si la valeur de cette option est true, tout curseur ouvert au moment où une transaction est validée ou restaurée est fermé. Si la valeur est false, ces curseurs restent ouverts lorsqu'une transaction est validée, et la restauration d'une transaction ferme tout curseur à l'exception de ceux qui sont définis avec le mot clé INSENSITIVE ou STATIC.

dbo use only

Si la valeur de cette option est true), seul le propriétaire de la base de données peut utiliser celle-ci.

default to local cursor

Si la valeur de cette option est true, les déclarations de curseur ont pour valeur par défaut LOCAL.

merge publish

Si la valeur de cette option est true, la base de données peut être publiée pour une réplication de fusion.

numeric roundabort

Si la valeur de cette option est true, une erreur est générée lorsqu'une perte de précision survient dans une expression. Si la valeur est false, les pertes de précision ne génèrent pas de messages d'erreur et le résultat est arrondi en fonction de la précision de la colonne ou de la variable contenant le résultat.

offline

Si la valeur de cette option est true (on), la base de données est hors ligne. Si la valeur est false (off), la base de données est en ligne.

published

Si la valeur de cette option est true, la base de données peut être publiée pour la réplication.

quoted identifier

Si la valeur de cette option est true, vous pouvez encadrer de guillemets doubles les identificateurs délimités.

read only

Si la valeur de cette option est true, les utilisateurs sont uniquement autorisés à lire les données de la base de données. Ils ne peuvent pas modifier les objets de données ou de base de données ; toutefois, la base de données elle-même peut être supprimée à l'aide de l'instruction DROP DATABASE. La base de données ne peut pas être en cours d'utilisation lorsque vous spécifiez une nouvelle value pour l'option read only. La base de données master fait exception à cette règle, et seul l'administrateur système peut l'utiliser pendant le paramétrage de l'option read only.

recursive triggers

Si la valeur de cette option est true, permet l'activation récursive de déclencheurs. Si la valeur est false, empêche uniquement la récurrence directe. Pour désactiver la récurrence indirecte, affectez la valeur 0 à l'option de serveur nested triggers à l'aide de sp_configure.

select into /bulkcopy

À partir de Microsoft SQL Server 2000, si le mode de récupération de la base de données est défini à FULL, l'utilisation de l'option select into/bulkcopy rétablit le mode de récupération à BULK_LOGGED. Pour changer le mode de récupération, la méthode adaptée consiste à utiliser la clause SET RECOVERY de l'instruction ALTER DATABASE.

single user

Si la valeur de cette option est true, la base de données ne peut être utilisée que par un seul utilisateur à la fois.

subscribed

Si la valeur de cette option est true, la base de données peut être abonnée à une publication.

torn page detection

Si la valeur de cette option est true, les pages incomplètes peuvent être détectées.

trunc. log on chkpt

Si la valeur de cette option est true, un point de contrôle vide la partie inactive du journal lorsque la base de données est dans le mode troncature de journal. Il s'agit de la seule option que vous pouvez valider pour la base de données master.

ImportantImportant
Introduite dans SQL Server 2000, l'attribution à l'option trunc. log on chkpt. de la valeur true affecte l'option SIMPLE au mode de récupération de la base de données. L'attribution de la valeur false à l'option affecte au mode de récupération l'option FULL.

En exécutant sp_dboption dans la base de données model, le propriétaire de la base de données ou l'administrateur système peut activer ou désactiver des options de base de données particulières dans toute nouvelle base de données.

Après l'exécution de sp_dboption, un point de contrôle est effectué dans la base de données qui a vu cette option modifiée. La modification prend alors effet immédiatement.

sp_dboption permet de modifier des paramètres pour une base de données. Utilisez plutôt sp_configure si vous souhaitez changer des paramètres au niveau du serveur, et l'instruction SET pour modifier des paramètres qui n'affectent que la session active.

Autorisations

L'affichage de la liste complète des options de base de données et de leurs valeurs actuelles requiert l'appartenance au rôle public. La modification de la valeur d'une option de base de données requiert l'appartenance au rôle de base de données fixe db_owner.

Exemples

A. Activation de l'option read only pour une base de données

L'exemple suivant valide l'option read only pour la base de données AdventureWorks2008R2.

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

B. Désactivation d'une option

L'exemple suivant permet d'écrire à nouveau dans la base de données AdventureWorks2008R2.

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