Comment définir le classement d'une colonne avec SQL?
À l'origine, j'ai créé ma base de données SQL Server sur un ordinateur local. J'ai mis son classement à Latin1_General_CI_AI
et tout fonctionnait bien. Quand j'ai quitté le travail fini pour de l'hébergement web SQL Server, j'ai rencontré un problème: l'utilisation d'une base de données de classement. Donc, ce que je peux faire maintenant?
Pour être plus précis, j'ai besoin de Latin1_General_CI_AI
, mais ils ont Czech_CI_AS
. Ces deux diffèrent de façon significative lorsque l'on compare les chaînes en langue tchèque (étonnamment, j'ai besoin de latin1 général, pas tchèque, d'obtenir des résultats corrects.)
Quand j'ai essayé de changer le classement de ma base de données, le serveur s'est plaint que je n'ai pas l'utilisateur l'autorisation de le faire. J'ai essayé de contacter l'assistance clientèle, mais pas de chance. Puis-je m'aider?
Je sais que peut-être, de chaque colonne de la table peut avoir son propre classement, donc peut-être que je devrait mettre en place toutes mes colonnes de la chaîne d' Latin1_CI_AI
. Mais je ne sais pas comment faire. J'ai seulement accès SQL à la base de données (malheureusement pas de SQL Server Management Studio).
OriginalL'auteur Al Kepp | 2012-08-30
Vous devez vous connecter pour publier un commentaire.
Pour modifier la base de données du classement
Pour modifier le classement d'une colonne
Mais il y a un certain nombre de limitations sur quand vous pouvez faire cela, très notamment que c'est refusé si la colonne est utilisée dans un index.
Vous pouvez en faire plus dans SSMS dans certains cas.
La syntaxe de la liste de documents, les restrictions:
Enfin, ce qui a fonctionné pour moi: j'ai créé "CREATE TABLE" script dans SQL Management Studio, avant de l'ouvrir dans le bloc-notes et ajouté manuellement
COLLATE Latin1_General_CI_AI' to each
NVARCHAR " définition de la colonne. Puis j'ai exécuté ce script dans une nouvelle base de données vide sur le serveur d'hébergement.Je pense que le CK_something pourrait être une Clé Cluster, de tout type de clé est considéré comme un objet dans la base de données, si vous souhaitez supprimer ou modifier une colonne qui a une clé sur elle, vous devez supprimer la clé de la première et de le rajouter si besoin (En SQLMS vous pouvez créer les scritps de Créer et de Supprimer la clé).
il semble exact que nous ne pouvons pas utiliser le t-sql ALTER TABLE pour modifier le classement si la colonne ne participe à aucun index. Il peut être fait dans SSMS - peut-être qu'il reconstruit les index en silence. (Je crois qu'il existe un paramètre pour permettre qu')
OriginalL'auteur saul672