Select the product you need help with
Résolution de l'erreur DBCC 2570 dans SQL Server 2005 et versions ultérieuresNuméro d'article: 923247 - Voir les produits auxquels s'applique cet article SommaireINTRODUCTIONCet article décrit l'erreur SQL Server 2570, quelle est la cause
l'erreur et comment résoudre le problème. Plus d'informationsContrôles DATA_PURITYDans SQL Server 2005, une nouvelle option, DATA_PURITY, a été ajoutée à les commandes DBCC CHECKDB et DBCC CHECKTABLE. Lorsque vous exécutez un DBCC CHECKDB ou la commande DBCC CHECKTABLE avec cette option est activée, la commande va effectuer. les validations de « pureté de données » sur chaque valeur de colonne dans toutes les lignes de la table ou tables dans la base de données. Ces nouveaux contrôles sont effectués pour s'assurer que le les valeurs stockées dans les colonnes sont valides (c'est-à-dire que les valeurs ne sont pas hors des limites pour le domaine associé au type de données de cette colonne). Le nature de la validation exécutée dépend du type de données de la colonne. Le suivant une liste non exhaustive donne quelques exemples :Réduire ce tableau
Les contrôles de validation de pureté de données ne sont pas activés automatiquement pour toutes les bases de données. Les contrôles sont activés en fonction de plusieurs facteurs suivants :
SYMPTÔMESDonnées non valides ou non valides ont été stockées dans le SQL Base de données du serveur dans les versions antérieures pour les raisons suivantes :
Certains symptômes vous remarquerez peut-être due à la présence de données non valides incluent (mais ne sont pas limitées vers) :
Rapport de problème DATA_PURITYLorsque vous exécutez une commande DBCC CHECKDB ou DBCC CHECKTABLE avec l'option DATA_PURITY activé (ou la pureté de données exécutent des vérifications automatiquement), et il existe des données non valides dans les tables vérifiées par la DBCC commandes, la sortie DBCC inclut les messages supplémentaires qui indiquent la problèmes avec les données. Certains messages d'erreur exemple qui indiquent la pureté de données des problèmes sont présentées ci-dessous :Résultats DBCC pour
« account_history ». Msg 2570, niveau 16, état 2, ligne 1 Page (1:1073), slot 33 dans ID 1977058079, index ID 0, partition ID 129568478265344, objet unité d'allocation 129568478265344 ID (type « données en ligne »). Colonne « account_name_japan » valeur est hors limites pour le type de données « nvarchar ». Mettre à jour la colonne à une valeur légale. Msg 2570, niveau 16, état 2, ligne 1 Page (1:1156), slot 120 dans l'objet ID 1977058079, index ID 0, partition 129568478265344 ID, ID d'unité alloc 129568478265344 (de type « En-ligne données »). Valeur de la colonne « account_name_japan » est sorti de la plage pour le type de données « nvarchar ». Mettre à jour la colonne à une valeur légale. Il sont 153137 lignes dans les pages de 1080 pour objet « account_history ». CHECKDB trouvé 0 erreurs d'allocation et 338 erreurs de cohérence dans la table « account_history » (objet ID 1977058079). CHECKDB trouvé 338 et erreurs d'allocation de 0 erreurs de cohérence dans la base de données « BadUnicodeData ». Exécution de DBCC terminée. Si DBCC vous a adressé des messages d'erreur, contactez votre administrateur système. Résultats DBCC pour « table1 ». Msg 2570, niveau 16, État 3, ligne 1 Page (1:154), slot 0 dans l'objet 2073058421 ID, ID d'index 72057594038321152 ID, ID 72057594042318848 (type d'unité d'allocation de 0, partition « Données en ligne"). Valeur de la colonne « col2 » est hors limites pour le type de données « réel ». Mettre à jour la colonne à une valeur légale. Il y a 4 lignes de 2 pages pour l'objet « table1 ». CHECKDB trouvé des erreurs d'allocation de 0 et les erreurs de 1 cohérence dans table « table1 » (object ID 2073058421). CHECKDB a trouvé 0 erreurs d'allocation et les erreurs de 1 cohérence dans la base de données « realdata ». Exécution de DBCC terminée. If Erreur DBCC vous a adressé des messages, contactez votre administrateur système. Résultats DBCC pour « table2 ». Msg 2570, niveau 16, État 3, ligne 1 Page (1:155), slot 0 dans l'objet 2105058535 ID, ID d'index 72057594038452224 ID, ID 72057594042449920 (type d'unité d'allocation de 0, partition « Données en ligne"). Valeur de la colonne « col2 » est hors limites pour le type de données « décimal ». Mettre à jour la colonne à une valeur légale. Il y a 4 lignes dans les pages 1 objet « table2 ». CHECKDB trouvé des erreurs d'allocation de 0 et les erreurs de 1 cohérence dans table « table2 » (object ID 2105058535). CHECKDB a trouvé 0 erreurs d'allocation et les erreurs de 1 cohérence dans la base de données « realdata ». Exécution de DBCC terminée. If Erreur DBCC vous a adressé des messages, contactez votre administrateur système. Résultats DBCC pour « Tableau3 ». Msg 2570, niveau 16, État 3, ligne 1 Page (1:157), slot 0 dans l'objet 2121058592 ID, ID d'index 72057594038517760 ID, ID 72057594042515456 (type d'unité d'allocation de 0, partition « Données en ligne"). Valeur de la colonne « col2 » est hors limites pour le type de données « datetime ». Mettre à jour la colonne à une valeur légale. Il existe 3 lignes dans les pages 1 objet « Tableau3 ». CHECKDB trouvé des erreurs d'allocation de 0 et les erreurs de 1 cohérence dans table « Tableau3 » (object ID 2121058592). CHECKDB a trouvé 0 erreurs d'allocation et les erreurs de 1 cohérence dans la base de données « realdata ». Exécution de DBCC terminée. If Erreur DBCC vous a adressé des messages, contactez votre administrateur système. Résolution du problème de pureté de donnéesLes erreurs 2570 ne peut pas être réparés à l'aide de la réparation DBCC Options. C'est parce qu'il est impossible pour DBCC déterminer la valeur doit utilisé pour remplacer la valeur de colonne non valide. Par conséquent, la valeur de colonne doit être mise à jour manuellement.Pour effectuer une mise à jour manuelle, vous disposez rechercher la ligne qui a le problème. Il existe deux façons de procéder.
Une fois que vous trouvez le ligne correcte, une décision doit être établie sur la nouvelle valeur qui sera utilisée pour remplacer les données existantes non valides. Cette décision doit être effectuée avec prudence en fonction de la plage de valeurs de travail pour l'application, ainsi que les sens logique pour cette ligne particulière de données. Les choix sont :
Recherche de lignes avec des valeurs non valides à l'aide de requêtes T-SQLLe type de requête que vous avez besoin d'exécuter pour rechercher les lignes qui ont valeurs non valides varie selon le type de données de la colonne qui a signalé un problème. Si vous examinez le message d'erreur 2570, vous remarquerez deux éléments importants de informations qui vous aidera à cela. Dans l'exemple suivant, la colonne valeur de « account_name_japan » est hors limites pour le type de données nvarchar. » » Nous pouvez identifier facilement la colonne qui a le problème ainsi que le type de données de la colonne impliquée. Par conséquent, une fois vous connaissez les données de type et la colonne concernée, vous peut formuler la requête pour rechercher les lignes qui contiennent des valeurs non valides pour cette colonne, sélectionnez les colonnes nécessaires pour identifier cette ligne (comme les prédicats dans une clause WHERE) pour tout autre update ou delete.Type de données Unicode : Type de données float : Type de données real : Date des données au moment du type : Vous devrez exécuter deux requêtes différentes pour identifier les lignes qui contiennent des valeurs non valides pour la colonne heure de date. Recherche de lignes avec une valeur non valide à l'aide de l'emplacement physique :Vous pouvez utiliser cette méthode si vous ne parvenez pas à trouver les lignes de intérêt en utilisant la méthode de T-SQL décrite ci-dessus. Dans le message d'erreur 2570 le emplacement physique de la ligne qui contient la valeur non valide est imprimé. Pour exemple, regardez le message suivant :Page (1:157),
Slot 0 dans l'objet ID 2121058592, index ID 0, partition ID 72057594038517760,
unité d'allocation 72057594042515456 ID (type « données en ligne »). Valeur de la colonne « col2 » est
hors des limites pour le type de données « datetime ». Mettre à jour la colonne à un service juridique
valeur.
Avertissement Nous vous conseillons d'utiliser la première méthode (autrement dit, utilisez T-SQL requêtes pour rechercher les informations requises). Utilisez la commande de la PAGE DBCC uniquement comme une dernier recours. Prendre le plus grand soin pendant que vous utilisez cette commande dans une production environnement. Il est conseillé de restaurer la base de données de production sur un test serveur, puis obtenir toutes les informations requises à l'aide de DBCC PAGE et effectuez ensuite la mises à jour sur le serveur de production. Comme toujours, assurez-vous de conserver une sauvegarde prêt dans le cas où quelque chose se passe mal et vous auriez besoin de revenir à une copie antérieure de la base de données. RéférencesPour plus d'informations sur l'instruction DBCC CHECKDB, consultez
la rubrique « DBCC CHECKDB (Transact-SQL) » sur MSDN Microsoft Developer
Site Web de Network (MSDN) : http://msdn2.Microsoft.com/en-us/library/ms176064.aspx Pour plus d'informations sur connus
problèmes de SQL Server 2000, cliquez sur le numéro ci-dessous pour afficher les
article de la Base de connaissances Microsoft :
(http://msdn2.microsoft.com/en-us/library/ms176064.aspx)
900335 Pour plus d'informations sur les événements RPC, consultez la
Rubrique « Appel d'une procédure stockée (OLE DB) » sur le site Web MSDN suivant :
(http://support.microsoft.com/kb/900335/
)
CORRECTIF : L'opération de récupération automatique de la base de données SQL Server 2000 peut échouer si un index contient un type de données FLOAT ou un type de données REAL, et ce type de données contient une valeur NaNhttp://msdn2.Microsoft.com/en-us/library/aa198358 (SQL.80) .aspx Pour plus d'informations sur les différents types de données, consultez le
Rubrique « Appel d'une procédure stockée (OLE DB) » sur le site Web MSDN suivant :
(http://msdn2.microsoft.com/en-us/library/aa198358(SQL.80).aspx)
http://msdn2.Microsoft.com/en-us/library/ms187752.aspx Pour plus d'informations sur les conventions de valeur de point flottant, visitez le site
le site Web Intel suivant :
(http://msdn2.microsoft.com/en-us/library/ms187752.aspx)
http://www.Intel.com/design/PentiumII/Manuals/243191.htm Microsoft
Fournit des informations de contact de sociétés tierces pour vous aider à trouver un support technique.
Ces coordonnées peuvent changer sans préavis. N'est pas le cas de Microsoft
garantir l'exactitude des informations de contact de ce tiers.
(http://www.intel.com/design/pentiumii/manuals/243191.htm)
PropriétésNuméro d'article: 923247 - Dernière mise à jour: jeudi 22 mars 2012 - Version: 1.0 Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
Traduction automatique IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique. La version anglaise de cet article est la suivante: 923247
(http://support.microsoft.com/kb/923247/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Traductions disponibles
|




Retour au début








