Sous-interrogation "Unable to update sys.columns - any other approach?" mentionne vaguement les problèmes de déploiement sur le serveur avec un classement différent. Le problème est que, par défaut, le classement SQL Server est déterminé (lors de l'installation) par Windows Options régionales et linguistiques -> Avancé -> "Sélectionnez une langue pour correspondre à la version linguistique du programme non-Unicode que vous voulez utilisez "dans le Panneau de configuration. Par conséquent, cette différence dans les classements entre les serveurs SQL de développement et de production/client est assez fréquente.
Par exemple, mais juste par exemple, j'ai le classement Cyrillic_General_CI_AS qui vient de Windows sur mon serveur SQL local et j'ai des clients ayant des serveurs avec un classement en hébreu. Ainsi, quels problèmes/problèmes le développeur devrait-il anticiper devoir développer avec un classement et, éventuellement, ne sachant même pas quel est le classement du client/client sur SQL Server?Quels problèmes faut-il anticiper pour avoir différents classements entre les serveurs SQL de développement et de production?
Mise à jour:
Disons que cette situation typique est que je ne développe pas la base de données à partir de zéro ou installer la production SQL Server au client. La situation typique est que je me connecte/déploie à SQL Server sur un serveur partagé ou dédié et/ou reçois une sauvegarde de la base de données.
Update2:
@ u07ch,
ma machine dev est en cours d'exécution sur en-us Windows XP Pro SP3 (anglais) et en-us SQL Server (en anglais).
Plz Voir ma question d'où vient le classement par défaut de SQL Server ("Sélectionnez une langue pour correspondre à la version linguistique du programme non-Unicode que vous voulez utiliser").
Je ne pouvais pas comprendre comment on "n'utilise jamais de tables temporaires ou de toute autre chose qui utilise TEMPd".
TempDB est utilisé pour la plupart des opérations dans SQL Server, même pour stocker les résultats intermédiaires des sélections.
@Damien_The_Unbeliever,
Je ne pense pas que CS_AS est maladroit. A MON HUMBLE AVIS. c'est CI-AI qui est gênant.
Si au scénario (à la main ou par SSMS) alors je bosse inévitablement contre Collations are scripted either for all columns or for none
Update3:
Ma question dit explicitement, et mes mises à jour réitèrent, que je ne pas utiliser des collations cyrilliques (ou même pages de codes) de toute façon, mais mon SQL Server et bases de données ont Cyrillic_General_CI_AS comme collation par défaut en raison de la configuration par défaut de SQL Server liée aux dépendances sur la configuration de Windows.
La logique sous ceci est, BTW, difficile à expliquer ou comprendre mais c'est simplement le statu quo dans les configurations de SQL Server ...
Mais le résultat est que cette dépendance assure pratiquement différents classements (par défaut) de serveurs SQL dans différents pays . Quelle est l'essence de cette question ...
Plz voir ma mise à jour dans le message principal –
Il est dit que vous utilisez "Cyrillic_General_CI_AS" dans votre question. Mon point sur Tempdb a peut-être été perdu en traduction - à moins que vous n'ayez écrit votre code spécifiquement pour travailler de manière croisée sur des serveurs, vous devrez le soulever de collation a à b pour travailler sur les serveurs de vos clients. – u07ch