1- comment est-ce possible ?
en tapant une requête dans l'analyseur, celle-ci s'exécute que si la casse
est respectée :
select * from toto ne fonctionne pas
alors que
select * from TOTO fonctionne (car TOTO est le nom de table ainsi
orthographié)
idem pour les noms de colonne ....
2- comment retrouver les paramètres d'install de sql server, notamment la
sensibilité sur les majuscules/minuscules concernant cette fois-ci les
données ?
je crois qu'il n'est pas possible de les modifier (sauf à réinstaller)...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fred BROUARD
bonjour,
Daniel Corréia a écrit:
Bonsoir,
1- comment est-ce possible ? en tapant une requête dans l'analyseur, celle-ci s'exécute que si la casse est respectée :
select * from toto ne fonctionne pas alors que select * from TOTO fonctionne (car TOTO est le nom de table ainsi orthographié)
idem pour les noms de colonne ....
C'est normal si la collation du serveur est sensible à la casse ou binaire. Ne pas oublier que TOUS les objets et en particulier leurs noms sont stockées dans les tables de métadonnées (table système). Si le serveur est installé en collation forte alors, les noms des objets répondront à cette conformance. C'est d'ailleurs une très bonne chose que d'installer un serveur en collation forte et si possible binaire, car on y gagne en performance à tous les niveaux.
Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlserver/collations/
2- comment retrouver les paramètres d'install de sql server, notamment la sensibilité sur les majuscules/minuscules concernant cette fois-ci les données ?
SELECT SERVERPROPERTY('collation') AS COLLATION_SERVEUR, DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS COLLATION_BASE_COURANTE, TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS
Cette requête va vous donner toutes les colations : serveur, base et colonnes.
je crois qu'il n'est pas possible de les modifier (sauf à réinstaller)...
Il n'y a pas d'autre moyen que de migrer toutes les données : 1) créer une nouvelle base avec la nouvelle collation 2) migrer les données de chaque table à l'aide de l'ordre SQL "INSERT INTO ... SELECT ... " en spécifiant une clause COLLATE pour chaque colonne 3) supprimer la base source 4) modifier le nom de la base cible.
Car la modification d'une collation (ALTER DATABASE..., ALTER TABLE...) ne vaut que pour les nouvelles données, pas celles en cours. De plus une collation différente de celle du serveur pour une base dégrde sensiblement les performances. C'est donc à éviter.
A +
Merci d'avance
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
bonjour,
Daniel Corréia a écrit:
Bonsoir,
1- comment est-ce possible ?
en tapant une requête dans l'analyseur, celle-ci s'exécute que si la casse
est respectée :
select * from toto ne fonctionne pas
alors que
select * from TOTO fonctionne (car TOTO est le nom de table ainsi
orthographié)
idem pour les noms de colonne ....
C'est normal si la collation du serveur est sensible à la casse ou binaire.
Ne pas oublier que TOUS les objets et en particulier leurs noms sont stockées
dans les tables de métadonnées (table système). Si le serveur est installé en
collation forte alors, les noms des objets répondront à cette conformance.
C'est d'ailleurs une très bonne chose que d'installer un serveur en collation
forte et si possible binaire, car on y gagne en performance à tous les niveaux.
Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlserver/collations/
2- comment retrouver les paramètres d'install de sql server, notamment la
sensibilité sur les majuscules/minuscules concernant cette fois-ci les
données ?
SELECT SERVERPROPERTY('collation') AS COLLATION_SERVEUR,
DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS COLLATION_BASE_COURANTE,
TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
Cette requête va vous donner toutes les colations : serveur, base et colonnes.
je crois qu'il n'est pas possible de les modifier (sauf à réinstaller)...
Il n'y a pas d'autre moyen que de migrer toutes les données :
1) créer une nouvelle base avec la nouvelle collation
2) migrer les données de chaque table à l'aide de l'ordre SQL "INSERT INTO ...
SELECT ... " en spécifiant une clause COLLATE pour chaque colonne
3) supprimer la base source
4) modifier le nom de la base cible.
Car la modification d'une collation (ALTER DATABASE..., ALTER TABLE...) ne vaut
que pour les nouvelles données, pas celles en cours.
De plus une collation différente de celle du serveur pour une base dégrde
sensiblement les performances. C'est donc à éviter.
A +
Merci d'avance
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
1- comment est-ce possible ? en tapant une requête dans l'analyseur, celle-ci s'exécute que si la casse est respectée :
select * from toto ne fonctionne pas alors que select * from TOTO fonctionne (car TOTO est le nom de table ainsi orthographié)
idem pour les noms de colonne ....
C'est normal si la collation du serveur est sensible à la casse ou binaire. Ne pas oublier que TOUS les objets et en particulier leurs noms sont stockées dans les tables de métadonnées (table système). Si le serveur est installé en collation forte alors, les noms des objets répondront à cette conformance. C'est d'ailleurs une très bonne chose que d'installer un serveur en collation forte et si possible binaire, car on y gagne en performance à tous les niveaux.
Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlserver/collations/
2- comment retrouver les paramètres d'install de sql server, notamment la sensibilité sur les majuscules/minuscules concernant cette fois-ci les données ?
SELECT SERVERPROPERTY('collation') AS COLLATION_SERVEUR, DATABASEPROPERTYEX(DB_NAME(), 'Collation') AS COLLATION_BASE_COURANTE, TABLE_NAME, COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS
Cette requête va vous donner toutes les colations : serveur, base et colonnes.
je crois qu'il n'est pas possible de les modifier (sauf à réinstaller)...
Il n'y a pas d'autre moyen que de migrer toutes les données : 1) créer une nouvelle base avec la nouvelle collation 2) migrer les données de chaque table à l'aide de l'ordre SQL "INSERT INTO ... SELECT ... " en spécifiant une clause COLLATE pour chaque colonne 3) supprimer la base source 4) modifier le nom de la base cible.
Car la modification d'une collation (ALTER DATABASE..., ALTER TABLE...) ne vaut que pour les nouvelles données, pas celles en cours. De plus une collation différente de celle du serveur pour une base dégrde sensiblement les performances. C'est donc à éviter.
A +
Merci d'avance
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************