Partager via


Définir le classement des bases de données définies par l’utilisateur pour qu’elles correspondent à celles des bases de données maîtres et de modèles

Cette règle vérifie si les bases de données définies par l’utilisateur sont définies à l’aide d’un classement de base de données identique au classement pour master ou modèle.

Recommandations relatives aux meilleures pratiques

Nous vous recommandons de faire correspondre les classements des bases de données définies par l’utilisateur au classement de master ou de modèle. Dans le cas contraire, les conflits de classement peuvent empêcher l’exécution du code. Par exemple, lorsqu’une procédure stockée joint une table à une table temporaire, SQL Server peut mettre fin au lot et retourner une erreur de conflit de classement si les classements de la base de données définie par l’utilisateur et la base de données du modèle sont différents. Cela se produit parce que les tables temporaires sont créées dans tempdb, qui base son classement sur celui du modèle.

Si vous rencontrez des erreurs de conflit de tri, envisagez l’une des solutions suivantes :

  • Exportez les données de la base de données utilisateur et importez-les dans de nouvelles tables qui ont le même classement que les bases de données master et de modèle.

  • Régénérez les bases de données système pour utiliser un classement qui correspond au classement de base de données utilisateur. Pour plus d’informations sur la reconstruction des bases de données système, consultez Reconstruire les bases de données système.

  • Modifiez toutes les procédures stockées qui joignent des tables utilisateur à des tables dans tempdb pour créer les tables dans tempdb à l’aide du classement de la base de données utilisateur. Pour ce faire, ajoutez la COLLATE database_default clause aux définitions de colonne de la table temporaire, comme illustré dans l’exemple suivant :

    CREATE TABLE #temp1 ( c1 int, c2 varchar(30) COLLATE database_default )  
    

Pour plus d’informations

Définir ou modifier le classement de base de données

Définir ou modifier le classement des colonnes

MODIFIER LA BASE DE DONNÉES (Transact-SQL)

COLLATE (Transact-SQL)

sys.databases (Transact-SQL)

Article de la Base de connaissances Microsoft 325335

Guide pratique pour installer SQL Server 2008 à partir de l’invite de commandes

Voir aussi

Surveiller et appliquer les meilleures pratiques à l’aide de la gestion basée sur des stratégies