Vous devez démarrer une instance de SQL Server en mode utilisateur unique lorsque vous utilisez DBCC CHECKDB/CHECKTABLE avec les options de réparation.


Résumé


La méthode correcte pour exécuter une instruction DBCC CHECKDB ou DBCC CHECKTABLE avec des options de réparation valides consiste à démarrer SQL Server normalement, puis à définir explicitement la base de données en mode utilisateur unique. Vous pouvez le faire à partir de l’Enterprise Manager ou de l’analyseur de requête.À partir d’Enterprise Manager :
  1. Cliquez avec le bouton droit sur le nom de la base de données, puis cliquez sur Propriétés.
  2. Dans la boîte de dialogue Propriétés , cliquez sur options.
  3. Sélectionnez l’option utilisateur unique , puis cliquez sur OK.
À partir de l’analyseur de requête :
Use mastergosp_dboption dbname, single, true
Une fois que la base de données est en mode utilisateur unique, vous pouvez exécuter les instructions DBCC CHECKDB ou DBCC CHECKTABLE en utilisant les options de réparation valides.

Si vous utilisez SQL Server 2005

Pour plus d’informations sur la façon de démarrer SQL Server en mode utilisateur unique, visitez le site Web Microsoft Developer Network (MSDN) suivant :

Informations supplémentaires


Si vous démarrez SQL Server en mode utilisateur unique (à l’aide de-m) et que vous exécutez une instruction de vérification DBCC (CHECKDB ou CHECKTABLE) avec l’une des options de réparation valides, SQL Server génère ce message d’erreur :
L’instruction de réparation n’a pas été traitée. La base de données doit être en mode utilisateur unique. Exécution DBCC terminée. S’il s’agit de messages d’erreur d’impression DBCC, contactez yourSystem.
Le message d’erreur précédent correspond au numéro d’erreur 7919. l’exemple suivant illustre le problème :
  1. Démarrer SQL Server à partir d’une invite de commandes à l’aide de :sqlservr-c-m
  2. Établissez une connexion à SQL Server à l’aide de l’analyseur de requête, puis exécutez le code suivant :
    Use pubsgoDBCC CHECKTABLE(Authors, REPAIR_REBUILD )go
Ces étapes entraînent l’apparition du message d’erreur mentionné au début de la section « informations supplémentaires ». Ce comportement est par concevoir. Lorsque vous démarrez SQL Server en mode utilisateur unique, vous ne définissez pas explicitement l’état de chaque base de données en mode utilisateur unique. C’est uniquement pour la base de données principale. Toutefois, l’instruction de vérification DBCC vérifie l’état de cette base de données sur laquelle elle est exécutée et si elle n’est pas définie sur un utilisateur unique, le message d’erreur s’affiche.