Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Symptômes

Supposez que vous disposez d’une table ayant un index ColumnStore groupé dans Microsoft SQL Server 2014. Vous exécutez une requête DDL sur la table pour changer le type de données d’une colonne existante. Par exemple, vous devez mettre à jour le type de données pour Column_1 de Table_1 de VARCHAR (499) sur NVARCHAR (500) en exécutant la commande suivante :

ALTER TABLE Table_1 ALTER COLUMN Column_1 NVARCHAR(500) NOT NULL

Dans ce cas, plusieurs échecs d’assertion se produisent et vous recevez le message d’erreur suivant :

Emplacement : <chemin d’accès du fichier> \Xmcolenc.inl : 413Expression : PF_CURRENT_STATUS = = PFS_OK (dans XMColumnEncoder<unsigned char *> :: EncodeValueForSecondary) spid : <SPID>ID de processus : <ID de processus>Description : hr : 0x0Location : <chemin d’accès> \xmerror.cpp : 43Expression : 0 (PFSetLastError) SPID : <SPID>ID de processus : <ID de processus

Par ailleurs, plusieurs fichiers de vidage de mémoire sont générés dans le dossier journal des erreurs SQL Server et plusieurs messages d’erreur qui ressemblent à ce qui suit sont enregistrés dans le journal des erreurs SQL Server :

<Date de la date> le SPID<ID> * * * le vidage de pile envoyé à <nom de disque> : \Program Files\Microsoft SQL Server\MSSQL12. SQL2014\MSSQL\LOG\SQLDump0002.txt<date> identifiant<SPID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <date> SPID<id> * <Date> SPID<ID> * Begin Stack dump : <Date Time> SPID<ID> <> < ID><SPID> ID<> identifiant SPID ID du de Date et d’heure SPID ID . date et heure de <Date> spid<ID> * <date> SPID<ID> * emplacement : <le chemin d’accès du fichier> \xmcolenc.inl : 413<Date de la date> SPID<ID> * expression : PF_CURRENT_STATUS = = PFS_OK<date> SPID<identifiant> * (dans XMColumnEncoder<unsigned char *> :: EncodeValueForSecondary) <Date Time> SPID<ID> * SPID : 60<date Time> SPID <ID> * : 3680<Date> SPID<ID> * Description : hr : 0x0<date time> SPID<id> * <Date> SPID<ID> <136 octets-> Date<spid> ID table_1 * ALTER TABLE ID ID

Résolution

Après avoir appliqué ce correctif, le nouveau message d’erreur suivant peut s’afficher lors de l’échec de la requête DDL :

L’instruction ALTER TABLE a échoué car un dictionnaire secondaire a atteint la limite de taille maximale. Envisagez de supprimer l’index ColumnStore, de modifier la colonne, puis de créer un index ColumnStore

Ce correctif empêche également la génération des fichiers de vidage de mémoire dans le journal des erreurs SQL Server. le problème a été résolu dans les mises à jour cumulatives de SQL Server suivantes :

Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :

Statut

Microsoft a confirmé l’existence de ce problème dans les produits Microsoft répertoriés dans la section « S’applique à ».

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×