Partager via


Définir le même classement pour les bases de données définies par l'utilisateur que pour les bases de données MASTER ou model

Cette règle vérifie si les bases de données définies par l'utilisateur sont définies en utilisant un classement de base de données identique à celui de la base de données master ou model.

Meilleures pratiques recommandées

Nous recommandons d'utiliser pour les bases de données définies par l'utilisateur les mêmes classements que ceux des bases de données master ou model. Dans le cas contraire, des conflits de classement pouvant empêcher l'exécution du code risquent de se produire. Par exemple, lorsqu'une procédure stockée joint une table à une table temporaire, SQL Server peut terminer le lot et retourner une erreur de conflit de classement si les classements de la base de données définie par l'utilisateur et de la base de données model sont différents. Cela se produit car les tables temporaires sont créées dans tempdb, dont le classement repose sur celui de la base de données model.

Si vous rencontrez des erreurs de conflit de classement, considérez l'une des solutions suivantes :

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

  • Reconstruisez les bases de données système pour utiliser un classement qui correspond à celui de la base de données utilisateur. Pour plus d'informations sur la reconstruction des bases de données système, consultez Reconstruire des bases de données système.

  • Modifiez toute procédure stockée qui joint des tables utilisateur à des tables de la base de données tempdb pour créer les tables dans tempdb en utilisant le classement de la base de données utilisateur. Pour ce faire, ajoutez la clause COLLATE database_default aux définitions de colonnes de la table temporaire, comme indiqué 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 la base de données

Définir ou modifier le classement des colonnes

ALTER DATABASE (Transact-SQL)

COLLATE (Transact-SQL)

sys.databases (Transact-SQL)

Article 325335 de la Base de connaissances Microsoft

Procédure : installer SQL Server 2008 à partir de l'invite de commandes

Voir aussi

Concepts

Contrôler et appliquer les meilleures pratiques à l'aide de la Gestion basée sur des stratégies