|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Essaie avec
UPDATE models SET Nom = dbo.propercase(Nom), Prenom = dbo.propercase(Prenom) -- Jean-Pierre Riehl http://blog.djeepy1.net http://www.bewise.fr "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in message news:%23HjLtDF0HHA.1188@TK2MSFTNGP04.phx.gbl... > J'ai trouver une fonction qui fonctionne > http://vyaskn.tripod.com/code/propercase.txt > Lorsque je lance la commande suivante ensuite: SELECT dbo.propercase(Nom) > AS Nom, dbo.propercase(Prenom) AS Prenom FROM models > J'ai bien les valeurs converties mais elles ne s'enregistrent pas dans la > table. Il me montre seulement le resultat sans les sauvegarder. > > Merci. > > "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le > message de news: ueKhHhE0HHA.3768@TK2MSFTNGP06.phx.gbl... >> PS: Maintenant que le script a l'air opérationnel tel quel , y a t il une >> possibilité de le modifier un peu pour qu'il prenne en considération les >> espace ou - pour les nom composé? >> >> Merci >> >> >> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le >> message de news: esKPfeE0HHA.2484@TK2MSFTNGP06.phx.gbl... >>> Alors , je pense avoir trouvé la solution. >>> >>> J'ai récupéré une partie de la fonction et j'ai modifier un script que >>> j'avais trouver sur un site. >>> >>> Voila donc le script que j'ai fait, le résultat dans la table est >>> correct. >>> Si vous pensez que cela n'est pas bon dites le moi, j'ai fait le test >>> sur un base de test ( par sécurité). >>> >>> UPDATE models SET prenom = (UPPER(SUBSTRING(prenom, 1, 1)) + >>> LOWER(SUBSTRING(prenom, 2, LEN(prenom) -1))) >>> Celui ci fonction pour une colonne spécifique mais cela ne me pose pas >>> de problème de le lancer deux fois en modifiant les champs. >>> >>> merci. >>> >>> >>> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le >>> message de news: urx24RE0HHA.5644@TK2MSFTNGP05.phx.gbl... >>>> Bonjour et merci, >>>> >>>> Je viens de tester votre solution, lorsque exécute le script pour créer >>>> la fonction, cela passe sans problème, mais lorsque je passe le >>>> deuxième script en mettant le nom de ma table, j'ai une erreur qui me >>>> dit qu il ne reconnaît pas FN_FIRST_CAP comme étant une fonction. >>>> >>>> Server: Msg 195, Level 15, State 10, Line 1 >>>> 'FN_FIRST_CAP' is not a recognized function name. >>>> >>>> Une idée de pourquoi il ne la reconnaît pas alors que lors de la >>>> création je n'ai pas eu d'erreur. >>>> >>>> Merci encore. >>>> >>>> Christophe >>>> cDs >>>> >>>> >>>> >>>> "OokieDookie" <sorrynospam@nowhere.com> a écrit dans le message de >>>> news: C2BBAC5A-87A1-485B-8020-B94CF5770E98@microsoft.com... >>>>> Bonjour, >>>>> >>>>> Fred BOUARD a créé une fonction utilisateur qui peut t'aider dans ta >>>>> démarche (http://sqlpro.developpez.com/cours/sqlserver/udf/) >>>>> >>>>> Exécute ce script sur ta base : >>>>> >>>>> CREATE FUNCTION FN_FIRST_CAP (@NAME VARCHAR(8000)) >>>>> RETURNS VARCHAR(8000) >>>>> AS >>>>> BEGIN >>>>> IF @NAME IS NULL >>>>> RETURN NULL >>>>> IF LEN(@NAME) = 1 >>>>> RETURN UPPER(@NAME) >>>>> RETURN UPPER(SUBSTRING(@NAME, 1, 1)) + >>>>> LOWER(SUBSTRING(@NAME, 2, LEN(@NAME) -1)) >>>>> END >>>>> GO >>>>> >>>>> Il te suffit ensuite de lancer une requête du type : >>>>> SELECT FN_FIRST_CAP(Nom) AS Nom, FN_FIRST_CAP(Prenom) AS Prenom FROM >>>>> TATABLE >>>>> >>>>> Pour la suite je te conseille d'attendre le retour de congés du >>>>> développeur >>>>> :/, mais la fonction PATINDEX peut t'aider (notamment pour détecter >>>>> les >>>>> espaces et les tirets). >>>>> Mais comme l'a dit Jean-Pierre, ça risque d'être sport avec uniquement >>>>> des >>>>> requêtes. >>>>> >>>>> HTH >>>>> >>>>> >>>>> "christophe cDs" a écrit : >>>>> >>>>>> Bonjour et merci de votre réponse, >>>>>> >>>>>> La base de donnée se trouve sur un serveur SQL2000 entreprise. >>>>>> En ne prenant pas en considération les noms composé, mais juste le >>>>>> fait de >>>>>> mettre les premieres lettres en capital et le reste en petit, est ce >>>>>> que >>>>>> cela pourrait faciliter la tache pour creer une requete ? >>>>>> >>>>>> A vrai dire je ne suis pas developpeur du tout mais manager du >>>>>> support >>>>>> client, le developpeur est actuellement en vacances, c'est pourquoi >>>>>> j'essai >>>>>> de me debrouiller tant bien que mal a trouver une solution. >>>>>> >>>>>> Je pense que cela doit etre possible , j'ai effectuer des recherche >>>>>> sur le >>>>>> net, et trouver quelques approches mais rien de concluant >>>>>> malheureusement. >>>>>> >>>>>> En tout cas merci encore de votre réponse. >>>>>> >>>>>> Christophe >>>>>> >>>>>> >>>>>> >>>>>> "Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans >>>>>> le >>>>>> message de news: >>>>>> 18B171E2-6A65-42E0-A408-37F900636BD6@microsoft.com... >>>>>> > Bonjour Christophe, >>>>>> > >>>>>> > SQL n'est pas le langage de prédilection pour manipuler des chaînes >>>>>> > de >>>>>> > caractères, un langage de programmation sera plus adapté. De plus, >>>>>> > ce >>>>>> > genre de traitement est à implémenter dans une couche métier, bien >>>>>> > avant >>>>>> > d'être au sein de SQL Server. Cela dit, je ne connais pas les >>>>>> > contraintes >>>>>> > donc je vais proposer d'autres idées : >>>>>> > -il est aussi possible de définir ses propres types (UDT) >>>>>> > développés en >>>>>> > .NET (C#, VB.NET, etc.) et de les faire fonctionner dans SQL Server >>>>>> > 2005 >>>>>> > avec la SQLCLR. >>>>>> > -si ce traitement doit être effectué une seule fois en mode batch, >>>>>> > vous >>>>>> > pouvez aussi regarder du coté des Procédures Stockées en code >>>>>> > managé. >>>>>> > >>>>>> > J'espère avoir répondu à la question... >>>>>> > >>>>>> > -- >>>>>> > Jean-Pierre Riehl >>>>>> > http://blog.djeepy1.net >>>>>> > http://www.bewise.fr >>>>>> > >>>>>> > >>>>>> > "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in >>>>>> > message >>>>>> > news:e0a2cgszHHA.4916@TK2MSFTNGP03.phx.gbl... >>>>>> >> Bonjour, >>>>>> >> >>>>>> >> J'aimerais mettre à jour le contenu de 2 colonnes "prenom" et >>>>>> >> "nom" d'une >>>>>> >> table "models" pour que les entrées soit mise à jour de la façon >>>>>> >> suivante >>>>>> >> : >>>>>> >> >>>>>> >> 1 ère lettre en capitale (uppercase) et le reste en petit >>>>>> >> (lowercase) . >>>>>> >> (en prenant en compte qu il peut y avoir des prenom/nom composé, >>>>>> >> ex: >>>>>> >> marie cécile dodu qui doit devenir Marie Cécile Dodu) >>>>>> >> >>>>>> >> Merci de votre aide. >>>>>> >> >>>>>> >> Christophe >>>>>> >> >>>>>> > >>>>>> >>>>>> >>>>>> >>>> >>>> >>> >>> >> >> > > |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
MERCIIIIIIIIIIIIII
Enfin ca marche je vais pouvoir mettre a jour cette table. Merci Beaucoup de votre aide. "Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans le message de news: 1D946290-9EB7-4F34-A862-C2DEB2C1633B@microsoft.com... > Essaie avec > > UPDATE models > SET Nom = dbo.propercase(Nom), > Prenom = dbo.propercase(Prenom) > > > -- > Jean-Pierre Riehl > http://blog.djeepy1.net > http://www.bewise.fr > > > > "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in message > news:%23HjLtDF0HHA.1188@TK2MSFTNGP04.phx.gbl... >> J'ai trouver une fonction qui fonctionne >> http://vyaskn.tripod.com/code/propercase.txt >> Lorsque je lance la commande suivante ensuite: SELECT dbo.propercase(Nom) >> AS Nom, dbo.propercase(Prenom) AS Prenom FROM models >> J'ai bien les valeurs converties mais elles ne s'enregistrent pas dans la >> table. Il me montre seulement le resultat sans les sauvegarder. >> >> Merci. >> >> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le >> message de news: ueKhHhE0HHA.3768@TK2MSFTNGP06.phx.gbl... >>> PS: Maintenant que le script a l'air opérationnel tel quel , y a t il >>> une possibilité de le modifier un peu pour qu'il prenne en considération >>> les espace ou - pour les nom composé? >>> >>> Merci >>> >>> >>> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le >>> message de news: esKPfeE0HHA.2484@TK2MSFTNGP06.phx.gbl... >>>> Alors , je pense avoir trouvé la solution. >>>> >>>> J'ai récupéré une partie de la fonction et j'ai modifier un script que >>>> j'avais trouver sur un site. >>>> >>>> Voila donc le script que j'ai fait, le résultat dans la table est >>>> correct. >>>> Si vous pensez que cela n'est pas bon dites le moi, j'ai fait le test >>>> sur un base de test ( par sécurité). >>>> >>>> UPDATE models SET prenom = (UPPER(SUBSTRING(prenom, 1, 1)) + >>>> LOWER(SUBSTRING(prenom, 2, LEN(prenom) -1))) >>>> Celui ci fonction pour une colonne spécifique mais cela ne me pose pas >>>> de problème de le lancer deux fois en modifiant les champs. >>>> >>>> merci. >>>> >>>> >>>> "christophe cDs" <christophe@(no-spam)cds-paris.com> a écrit dans le >>>> message de news: urx24RE0HHA.5644@TK2MSFTNGP05.phx.gbl... >>>>> Bonjour et merci, >>>>> >>>>> Je viens de tester votre solution, lorsque exécute le script pour >>>>> créer la fonction, cela passe sans problème, mais lorsque je passe le >>>>> deuxième script en mettant le nom de ma table, j'ai une erreur qui me >>>>> dit qu il ne reconnaît pas FN_FIRST_CAP comme étant une fonction. >>>>> >>>>> Server: Msg 195, Level 15, State 10, Line 1 >>>>> 'FN_FIRST_CAP' is not a recognized function name. >>>>> >>>>> Une idée de pourquoi il ne la reconnaît pas alors que lors de la >>>>> création je n'ai pas eu d'erreur. >>>>> >>>>> Merci encore. >>>>> >>>>> Christophe >>>>> cDs >>>>> >>>>> >>>>> >>>>> "OokieDookie" <sorrynospam@nowhere.com> a écrit dans le message de >>>>> news: C2BBAC5A-87A1-485B-8020-B94CF5770E98@microsoft.com... >>>>>> Bonjour, >>>>>> >>>>>> Fred BOUARD a créé une fonction utilisateur qui peut t'aider dans ta >>>>>> démarche (http://sqlpro.developpez.com/cours/sqlserver/udf/) >>>>>> >>>>>> Exécute ce script sur ta base : >>>>>> >>>>>> CREATE FUNCTION FN_FIRST_CAP (@NAME VARCHAR(8000)) >>>>>> RETURNS VARCHAR(8000) >>>>>> AS >>>>>> BEGIN >>>>>> IF @NAME IS NULL >>>>>> RETURN NULL >>>>>> IF LEN(@NAME) = 1 >>>>>> RETURN UPPER(@NAME) >>>>>> RETURN UPPER(SUBSTRING(@NAME, 1, 1)) + >>>>>> LOWER(SUBSTRING(@NAME, 2, LEN(@NAME) -1)) >>>>>> END >>>>>> GO >>>>>> >>>>>> Il te suffit ensuite de lancer une requête du type : >>>>>> SELECT FN_FIRST_CAP(Nom) AS Nom, FN_FIRST_CAP(Prenom) AS Prenom FROM >>>>>> TATABLE >>>>>> >>>>>> Pour la suite je te conseille d'attendre le retour de congés du >>>>>> développeur >>>>>> :/, mais la fonction PATINDEX peut t'aider (notamment pour détecter >>>>>> les >>>>>> espaces et les tirets). >>>>>> Mais comme l'a dit Jean-Pierre, ça risque d'être sport avec >>>>>> uniquement des >>>>>> requêtes. >>>>>> >>>>>> HTH >>>>>> >>>>>> >>>>>> "christophe cDs" a écrit : >>>>>> >>>>>>> Bonjour et merci de votre réponse, >>>>>>> >>>>>>> La base de donnée se trouve sur un serveur SQL2000 entreprise. >>>>>>> En ne prenant pas en considération les noms composé, mais juste le >>>>>>> fait de >>>>>>> mettre les premieres lettres en capital et le reste en petit, est ce >>>>>>> que >>>>>>> cela pourrait faciliter la tache pour creer une requete ? >>>>>>> >>>>>>> A vrai dire je ne suis pas developpeur du tout mais manager du >>>>>>> support >>>>>>> client, le developpeur est actuellement en vacances, c'est pourquoi >>>>>>> j'essai >>>>>>> de me debrouiller tant bien que mal a trouver une solution. >>>>>>> >>>>>>> Je pense que cela doit etre possible , j'ai effectuer des recherche >>>>>>> sur le >>>>>>> net, et trouver quelques approches mais rien de concluant >>>>>>> malheureusement. >>>>>>> >>>>>>> En tout cas merci encore de votre réponse. >>>>>>> >>>>>>> Christophe >>>>>>> >>>>>>> >>>>>>> >>>>>>> "Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans >>>>>>> le >>>>>>> message de news: >>>>>>> 18B171E2-6A65-42E0-A408-37F900636BD6@microsoft.com... >>>>>>> > Bonjour Christophe, >>>>>>> > >>>>>>> > SQL n'est pas le langage de prédilection pour manipuler des >>>>>>> > chaînes de >>>>>>> > caractères, un langage de programmation sera plus adapté. De plus, >>>>>>> > ce >>>>>>> > genre de traitement est à implémenter dans une couche métier, bien >>>>>>> > avant >>>>>>> > d'être au sein de SQL Server. Cela dit, je ne connais pas les >>>>>>> > contraintes >>>>>>> > donc je vais proposer d'autres idées : >>>>>>> > -il est aussi possible de définir ses propres types (UDT) >>>>>>> > développés en >>>>>>> > .NET (C#, VB.NET, etc.) et de les faire fonctionner dans SQL >>>>>>> > Server 2005 >>>>>>> > avec la SQLCLR. >>>>>>> > -si ce traitement doit être effectué une seule fois en mode >>>>>>> > batch, vous >>>>>>> > pouvez aussi regarder du coté des Procédures Stockées en code >>>>>>> > managé. >>>>>>> > >>>>>>> > J'espère avoir répondu à la question... >>>>>>> > >>>>>>> > -- >>>>>>> > Jean-Pierre Riehl >>>>>>> > http://blog.djeepy1.net >>>>>>> > http://www.bewise.fr >>>>>>> > >>>>>>> > >>>>>>> > "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in >>>>>>> > message >>>>>>> > news:e0a2cgszHHA.4916@TK2MSFTNGP03.phx.gbl... >>>>>>> >> Bonjour, >>>>>>> >> >>>>>>> >> J'aimerais mettre à jour le contenu de 2 colonnes "prenom" et >>>>>>> >> "nom" d'une >>>>>>> >> table "models" pour que les entrées soit mise à jour de la façon >>>>>>> >> suivante >>>>>>> >> : >>>>>>> >> >>>>>>> >> 1 ère lettre en capitale (uppercase) et le reste en petit >>>>>>> >> (lowercase) . >>>>>>> >> (en prenant en compte qu il peut y avoir des prenom/nom composé, >>>>>>> >> ex: >>>>>>> >> marie cécile dodu qui doit devenir Marie Cécile Dodu) >>>>>>> >> >>>>>>> >> Merci de votre aide. >>>>>>> >> >>>>>>> >> Christophe >>>>>>> >> >>>>>>> > >>>>>>> >>>>>>> >>>>>>> >>>>> >>>>> >>>> >>>> >>> >>> >> >> > |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
christophe cDs a écrit : > Bonjour et merci, > > Je viens de tester votre solution, lorsque exécute le script pour créer la > fonction, cela passe sans problème, mais lorsque je passe le deuxième script > en mettant le nom de ma table, j'ai une erreur qui me dit qu il ne reconnaît > pas FN_FIRST_CAP comme étant une fonction. Une fonction doit TOUJOURS être appelée avec son nom + SON SCHEMA. Donc dbo.FN_FIRST_CAP A + > > Server: Msg 195, Level 15, State 10, Line 1 > 'FN_FIRST_CAP' is not a recognized function name. > > Une idée de pourquoi il ne la reconnaît pas alors que lors de la création je > n'ai pas eu d'erreur. > > Merci encore. > > Christophe > cDs > > > > "OokieDookie" <sorrynospam@nowhere.com> a écrit dans le message de news: > C2BBAC5A-87A1-485B-8020-B94CF5770E98@microsoft.com... >> Bonjour, >> >> Fred BOUARD a créé une fonction utilisateur qui peut t'aider dans ta >> démarche (http://sqlpro.developpez.com/cours/sqlserver/udf/) >> >> Exécute ce script sur ta base : >> >> CREATE FUNCTION FN_FIRST_CAP (@NAME VARCHAR(8000)) >> RETURNS VARCHAR(8000) >> AS >> BEGIN >> IF @NAME IS NULL >> RETURN NULL >> IF LEN(@NAME) = 1 >> RETURN UPPER(@NAME) >> RETURN UPPER(SUBSTRING(@NAME, 1, 1)) + >> LOWER(SUBSTRING(@NAME, 2, LEN(@NAME) -1)) >> END >> GO >> >> Il te suffit ensuite de lancer une requête du type : >> SELECT FN_FIRST_CAP(Nom) AS Nom, FN_FIRST_CAP(Prenom) AS Prenom FROM >> TATABLE >> >> Pour la suite je te conseille d'attendre le retour de congés du >> développeur >> :/, mais la fonction PATINDEX peut t'aider (notamment pour détecter les >> espaces et les tirets). >> Mais comme l'a dit Jean-Pierre, ça risque d'être sport avec uniquement des >> requêtes. >> >> HTH >> >> >> "christophe cDs" a écrit : >> >>> Bonjour et merci de votre réponse, >>> >>> La base de donnée se trouve sur un serveur SQL2000 entreprise. >>> En ne prenant pas en considération les noms composé, mais juste le fait >>> de >>> mettre les premieres lettres en capital et le reste en petit, est ce que >>> cela pourrait faciliter la tache pour creer une requete ? >>> >>> A vrai dire je ne suis pas developpeur du tout mais manager du support >>> client, le developpeur est actuellement en vacances, c'est pourquoi >>> j'essai >>> de me debrouiller tant bien que mal a trouver une solution. >>> >>> Je pense que cela doit etre possible , j'ai effectuer des recherche sur >>> le >>> net, et trouver quelques approches mais rien de concluant >>> malheureusement. >>> >>> En tout cas merci encore de votre réponse. >>> >>> Christophe >>> >>> >>> >>> "Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans le >>> message de news: 18B171E2-6A65-42E0-A408-37F900636BD6@microsoft.com... >>>> Bonjour Christophe, >>>> >>>> SQL n'est pas le langage de prédilection pour manipuler des chaînes de >>>> caractères, un langage de programmation sera plus adapté. De plus, ce >>>> genre de traitement est à implémenter dans une couche métier, bien >>>> avant >>>> d'être au sein de SQL Server. Cela dit, je ne connais pas les >>>> contraintes >>>> donc je vais proposer d'autres idées : >>>> -il est aussi possible de définir ses propres types (UDT) développés >>>> en >>>> .NET (C#, VB.NET, etc.) et de les faire fonctionner dans SQL Server >>>> 2005 >>>> avec la SQLCLR. >>>> -si ce traitement doit être effectué une seule fois en mode batch, >>>> vous >>>> pouvez aussi regarder du coté des Procédures Stockées en code managé. >>>> >>>> J'espère avoir répondu à la question... >>>> >>>> -- >>>> Jean-Pierre Riehl >>>> http://blog.djeepy1.net >>>> http://www.bewise.fr >>>> >>>> >>>> "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in message >>>> news:e0a2cgszHHA.4916@TK2MSFTNGP03.phx.gbl... >>>>> Bonjour, >>>>> >>>>> J'aimerais mettre à jour le contenu de 2 colonnes "prenom" et "nom" >>>>> d'une >>>>> table "models" pour que les entrées soit mise à jour de la façon >>>>> suivante >>>>> : >>>>> >>>>> 1 ère lettre en capitale (uppercase) et le reste en petit (lowercase) >>>>> . >>>>> (en prenant en compte qu il peut y avoir des prenom/nom composé, ex: >>>>> marie cécile dodu qui doit devenir Marie Cécile Dodu) >>>>> >>>>> Merci de votre aide. >>>>> >>>>> Christophe >>>>> >>> >>> > > -- 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 *********************** |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
Oui j'ai vu ça que cela fonctionnait après plusieurs test.
Encore merci de votre aide a tous. Chris. "Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de news: OyWR63n0HHA.5980@TK2MSFTNGP04.phx.gbl... > > > christophe cDs a écrit : >> Bonjour et merci, >> >> Je viens de tester votre solution, lorsque exécute le script pour créer >> la fonction, cela passe sans problème, mais lorsque je passe le deuxième >> script en mettant le nom de ma table, j'ai une erreur qui me dit qu il ne >> reconnaît pas FN_FIRST_CAP comme étant une fonction. > > Une fonction doit TOUJOURS être appelée avec son nom + SON SCHEMA. > > Donc dbo.FN_FIRST_CAP > > A + > > > >> >> Server: Msg 195, Level 15, State 10, Line 1 >> 'FN_FIRST_CAP' is not a recognized function name. >> >> Une idée de pourquoi il ne la reconnaît pas alors que lors de la création >> je n'ai pas eu d'erreur. >> >> Merci encore. >> >> Christophe >> cDs >> >> >> >> "OokieDookie" <sorrynospam@nowhere.com> a écrit dans le message de news: >> C2BBAC5A-87A1-485B-8020-B94CF5770E98@microsoft.com... >>> Bonjour, >>> >>> Fred BOUARD a créé une fonction utilisateur qui peut t'aider dans ta >>> démarche (http://sqlpro.developpez.com/cours/sqlserver/udf/) >>> >>> Exécute ce script sur ta base : >>> >>> CREATE FUNCTION FN_FIRST_CAP (@NAME VARCHAR(8000)) >>> RETURNS VARCHAR(8000) >>> AS >>> BEGIN >>> IF @NAME IS NULL >>> RETURN NULL >>> IF LEN(@NAME) = 1 >>> RETURN UPPER(@NAME) >>> RETURN UPPER(SUBSTRING(@NAME, 1, 1)) + >>> LOWER(SUBSTRING(@NAME, 2, LEN(@NAME) -1)) >>> END >>> GO >>> >>> Il te suffit ensuite de lancer une requête du type : >>> SELECT FN_FIRST_CAP(Nom) AS Nom, FN_FIRST_CAP(Prenom) AS Prenom FROM >>> TATABLE >>> >>> Pour la suite je te conseille d'attendre le retour de congés du >>> développeur >>> :/, mais la fonction PATINDEX peut t'aider (notamment pour détecter les >>> espaces et les tirets). >>> Mais comme l'a dit Jean-Pierre, ça risque d'être sport avec uniquement >>> des >>> requêtes. >>> >>> HTH >>> >>> >>> "christophe cDs" a écrit : >>> >>>> Bonjour et merci de votre réponse, >>>> >>>> La base de donnée se trouve sur un serveur SQL2000 entreprise. >>>> En ne prenant pas en considération les noms composé, mais juste le fait >>>> de >>>> mettre les premieres lettres en capital et le reste en petit, est ce >>>> que >>>> cela pourrait faciliter la tache pour creer une requete ? >>>> >>>> A vrai dire je ne suis pas developpeur du tout mais manager du support >>>> client, le developpeur est actuellement en vacances, c'est pourquoi >>>> j'essai >>>> de me debrouiller tant bien que mal a trouver une solution. >>>> >>>> Je pense que cela doit etre possible , j'ai effectuer des recherche sur >>>> le >>>> net, et trouver quelques approches mais rien de concluant >>>> malheureusement. >>>> >>>> En tout cas merci encore de votre réponse. >>>> >>>> Christophe >>>> >>>> >>>> >>>> "Jean-Pierre Riehl" <jean-pierre.riehl@b-e-w-i-s-e.fr> a écrit dans le >>>> message de news: 18B171E2-6A65-42E0-A408-37F900636BD6@microsoft.com... >>>>> Bonjour Christophe, >>>>> >>>>> SQL n'est pas le langage de prédilection pour manipuler des chaînes de >>>>> caractères, un langage de programmation sera plus adapté. De plus, ce >>>>> genre de traitement est à implémenter dans une couche métier, bien >>>>> avant >>>>> d'être au sein de SQL Server. Cela dit, je ne connais pas les >>>>> contraintes >>>>> donc je vais proposer d'autres idées : >>>>> -il est aussi possible de définir ses propres types (UDT) développés >>>>> en >>>>> .NET (C#, VB.NET, etc.) et de les faire fonctionner dans SQL Server >>>>> 2005 >>>>> avec la SQLCLR. >>>>> -si ce traitement doit être effectué une seule fois en mode batch, >>>>> vous >>>>> pouvez aussi regarder du coté des Procédures Stockées en code managé. >>>>> >>>>> J'espère avoir répondu à la question... >>>>> >>>>> -- >>>>> Jean-Pierre Riehl >>>>> http://blog.djeepy1.net >>>>> http://www.bewise.fr >>>>> >>>>> >>>>> "christophe cDs" <christophe@(no-spam)cds-paris.com> wrote in message >>>>> news:e0a2cgszHHA.4916@TK2MSFTNGP03.phx.gbl... >>>>>> Bonjour, >>>>>> >>>>>> J'aimerais mettre à jour le contenu de 2 colonnes "prenom" et "nom" >>>>>> d'une >>>>>> table "models" pour que les entrées soit mise à jour de la façon >>>>>> suivante >>>>>> : >>>>>> >>>>>> 1 ère lettre en capitale (uppercase) et le reste en petit (lowercase) >>>>>> . >>>>>> (en prenant en compte qu il peut y avoir des prenom/nom composé, ex: >>>>>> marie cécile dodu qui doit devenir Marie Cécile Dodu) >>>>>> >>>>>> Merci de votre aide. >>>>>> >>>>>> Christophe >>>>>> >>>> >>>> >> >> > > > -- > 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 *********************** |
|
![]() |
| Outils de la discussion | |
|
|