11
votes

Comment puis-je obtenir la classée d'une table spécifique dans une base de données?

Comment puis-je obtenir la classée d'une table spécifique dans une base de données? Est-il possible qu'une table ait différentes collations dans dB?


0 commentaires

3 Réponses :


3
votes

Il n'existe pas de classement pour une table.

Une base de données a une collation par défaut (qui par défaut à la classement du serveur).

La collecte par défaut de la base de données sera appliquée à n'importe quelle colonne que vous ajoutez à une table, sauf si vous spécifiez explicitement une collation au niveau de la colonne.


3 commentaires

Comment puis-je obtenir cette collision de niveau de colonne?


Sélectionnez C.Name, C.Collation_Name à partir de sys.columns c Joindre sys.Tables t sur t.Object_id = c.Object_id où t.Name = 'MyTable' et C.Name = 'MyColumn'


Je m'excuse si j'ai. Je dois être aveugle parce que je ne le vois toujours pas. Très proche bien sûr, mais l'utilisateur a demandé une colonne particulière? Je viens d'ajouter la clause Where.



27
votes

Collation au niveau de la table est sur une base par colonne, il est donc possible d'avoir une assemblée différente de celle de la base de données. Si la collation n'est pas définie au niveau de la colonne, il est par défaut du paramètre de collement de la base de données.

SQL Server 2000: P>

SELECT c.name, 
       c.collation_name
  FROM SYS.COLUMNS c
  JOIN SYS.TABLES t ON t.object_id = c.object_id
 WHERE t.name = 'your_table_name'


2 commentaires

Ce dernier cas peut être encore plus simple (pas de join ou d'un identifiant d'objet) si vous utilisez le schéma informations_schema au lieu du schéma sys . Vous obtiendrez: Sélectionner colonne_name, Collation_Name à partir d'informations_schema.columns où table_name = 'Your_Table_name'


Désolé, le commentaire ci-dessus s'applique uniquement à SQL Server 2012 et, plus tard, ce qui n'était évidemment pas disponible lorsque la réponse a été écrite, mais la plupart des gens l'utiliseront maintenant. Le commentaire peut donc toujours être utile.



0
votes

juste comme un point de note. Les SSMS peuvent afficher des collations de colonne lors de la diffusion de la table. Vous pouvez entrer dans les outils-> options. Sous SQL Server Object Explorer -> Scripstting, il existe une option pour afficher la classement lors du script d'une table. Vous pouvez transformer cela temporairement et script une table pour voir le code de création de table, y compris les collations de colonne.


1 commentaires

C'est ce qu'on appelle inclure la collation et il est sous Table et View Options . Merci!