Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9 voir
8 meme 7 (ce sont des vieilles données)....
Pour des raisons diverses liés à notre systeme info, je souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10)
Begin
Update MATABLE
Set StrTel = "0" + strTel
End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien
compris (j'espère) me permette de faire semblablement la meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était acomplie.
Si l'un de vous pouvais me donner la différence entre WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de champs avec chaque
instruction, j'en serais ravis....
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 M
Le fetch n'est peut-être pas dans ton cas obligatoire : et si on essayait la fonction Space ? ex : Update MATABLE Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2 donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher... Bon courage. Fred
-----Message d'origine----- Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
8 meme 7 (ce sont des vieilles données).... Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10) Begin Update MATABLE Set StrTel = "0" + strTel End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de
champs avec chaque
instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
.
Le fetch n'est peut-être pas dans ton cas obligatoire : et
si on essayait la fonction Space ?
ex :
Update MATABLE
Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2
donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher...
Bon courage.
Fred
-----Message d'origine-----
Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
8 meme 7 (ce sont des vieilles données)....
Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10)
Begin
Update MATABLE
Set StrTel = "0" + strTel
End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de
Le fetch n'est peut-être pas dans ton cas obligatoire : et si on essayait la fonction Space ? ex : Update MATABLE Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2 donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher... Bon courage. Fred
-----Message d'origine----- Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
8 meme 7 (ce sont des vieilles données).... Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10) Begin Update MATABLE Set StrTel = "0" + strTel End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de
champs avec chaque
instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
.
Fred BROUARD
Il faut faire une curseur for update.
DECLARE cursor_name CURSOR FOR select_statement FOR UPDATE [ OF column_name [ ,...n ] ] } ]
dès lors tu pourra modifier directement la colonne dans les varaibles du curseur.
A +
michael a écrit:
Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une mise a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9 voir 8 meme 7 (ce sont des vieilles données).... Pour des raisons diverses liés à notre systeme info, je souhaitemettre celui ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête exacte sur moi)
While (select strTel from MATABLE where len(strtel) < 10) Begin Update MATABLE Set StrTel = "0" + strTel End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien compris (j'espère) me permette de faire semblablement la meme chose, j'ai trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais nacash, pas moyen non plus de faire un UPDATE cependant je n'avais pas de message d'erreur, l'analyseur m'indiquait que la requete était acomplie.
Si l'un de vous pouvais me donner la différence entre WHILE et FETCH...et eventuellement me donner un exemple de mise a jour de champs avec chaque instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Il faut faire une curseur for update.
DECLARE cursor_name CURSOR
FOR select_statement
FOR UPDATE [ OF column_name [ ,...n ] ] } ]
dès lors tu pourra modifier directement la colonne dans les varaibles du
curseur.
A +
michael a écrit:
Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9 voir
8 meme 7 (ce sont des vieilles données)....
Pour des raisons diverses liés à notre systeme info, je souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10)
Begin
Update MATABLE
Set StrTel = "0" + strTel
End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien
compris (j'espère) me permette de faire semblablement la meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était acomplie.
Si l'un de vous pouvais me donner la différence entre WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de champs avec chaque
instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
DECLARE cursor_name CURSOR FOR select_statement FOR UPDATE [ OF column_name [ ,...n ] ] } ]
dès lors tu pourra modifier directement la colonne dans les varaibles du curseur.
A +
michael a écrit:
Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une mise a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9 voir 8 meme 7 (ce sont des vieilles données).... Pour des raisons diverses liés à notre systeme info, je souhaitemettre celui ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête exacte sur moi)
While (select strTel from MATABLE where len(strtel) < 10) Begin Update MATABLE Set StrTel = "0" + strTel End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien compris (j'espère) me permette de faire semblablement la meme chose, j'ai trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais nacash, pas moyen non plus de faire un UPDATE cependant je n'avais pas de message d'erreur, l'analyseur m'indiquait que la requete était acomplie.
Si l'un de vous pouvais me donner la différence entre WHILE et FETCH...et eventuellement me donner un exemple de mise a jour de champs avec chaque instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
bruno reiter [MVP]
effectivement, il n'y a besoin ni de while, ni de curseur, un simple update sur toute la table comme montre Fred M : Update MATABLE Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
br
"Fred M" wrote in message news:01a301c38efc$c818ff10$ Le fetch n'est peut-être pas dans ton cas obligatoire : et si on essayait la fonction Space ? ex : Update MATABLE Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2 donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher... Bon courage. Fred
-----Message d'origine----- Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
8 meme 7 (ce sont des vieilles données).... Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10) Begin Update MATABLE Set StrTel = "0" + strTel End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de
champs avec chaque
instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
.
effectivement, il n'y a besoin ni de while, ni de curseur, un simple update sur
toute la table comme montre Fred M :
Update MATABLE
Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
br
"Fred M" <fmichalak@avolys.com> wrote in message
news:01a301c38efc$c818ff10$a001280a@phx.gbl...
Le fetch n'est peut-être pas dans ton cas obligatoire : et
si on essayait la fonction Space ?
ex :
Update MATABLE
Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2
donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher...
Bon courage.
Fred
-----Message d'origine-----
Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
8 meme 7 (ce sont des vieilles données)....
Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10)
Begin
Update MATABLE
Set StrTel = "0" + strTel
End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de
effectivement, il n'y a besoin ni de while, ni de curseur, un simple update sur toute la table comme montre Fred M : Update MATABLE Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
br
"Fred M" wrote in message news:01a301c38efc$c818ff10$ Le fetch n'est peut-être pas dans ton cas obligatoire : et si on essayait la fonction Space ? ex : Update MATABLE Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2 donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher... Bon courage. Fred
-----Message d'origine----- Bonsoir,
Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
a jour sur un champ précis dans une table.
Exemple :
Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
8 meme 7 (ce sont des vieilles données).... Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
ci sur 10 meme si il est erroné....
Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
Par contre, j'ai voulu expérimenté le T-SQL...
Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
sur moi)
While (select strTel from MATABLE where len(strtel) < 10) Begin Update MATABLE Set StrTel = "0" + strTel End
Bien sur cela n'a pas fonctionné....
Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
eventuellement me donner un exemple de mise a jour de
champs avec chaque
instruction, j'en serais ravis....
Encore merci a tous et bonne soirée !
.
Med Bouchenafa[MVP]
Attention à limiter l'effet d'un UPDATE par une clause WHERE
Update MATABLE Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
WHERE LEN(strtel) < 10
-- Bien cordialement Med Bouchenafa TETRASET 75015 Paris "bruno reiter [MVP]" wrote in message news:
effectivement, il n'y a besoin ni de while, ni de curseur, un simple
update sur
toute la table comme montre Fred M : Update MATABLE Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
br
"Fred M" wrote in message news:01a301c38efc$c818ff10$ Le fetch n'est peut-être pas dans ton cas obligatoire : et si on essayait la fonction Space ? ex : Update MATABLE Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2 donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher... Bon courage. Fred
>-----Message d'origine----- >Bonsoir, > >Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une mise >a jour sur un champ précis dans une table. > >Exemple : > >Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9 voir >8 meme 7 (ce sont des vieilles données).... >Pour des raisons diverses liés à notre systeme info, je souhaitemettre celui >ci sur 10 meme si il est erroné.... > >Je code en générale en ASP donc là pas de problème pour faire une Boucle... > >Par contre, j'ai voulu expérimenté le T-SQL... > >Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête exacte >sur moi) > >While (select strTel from MATABLE where len(strtel) < 10) >Begin > Update MATABLE > Set StrTel = "0" + strTel >End > >Bien sur cela n'a pas fonctionné.... > >Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien >compris (j'espère) me permette de faire semblablement la meme chose, j'ai >trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais nacash, >pas moyen non plus de faire un UPDATE cependant je n'avais pas de message >d'erreur, l'analyseur m'indiquait que la requete était acomplie. > >Si l'un de vous pouvais me donner la différence entre WHILE et FETCH...et >eventuellement me donner un exemple de mise a jour de champs avec chaque >instruction, j'en serais ravis.... > >Encore merci a tous et bonne soirée ! > > >. >
Attention à limiter l'effet d'un UPDATE par une clause WHERE
Update MATABLE
Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
WHERE LEN(strtel) < 10
--
Bien cordialement
Med Bouchenafa
TETRASET
75015 Paris
"bruno reiter [MVP]" <remove.this.br33@bol.com.br> wrote in message
news:u9OkgAwjDHA.2200@TK2MSFTNGP12.phx.gbl...
effectivement, il n'y a besoin ni de while, ni de curseur, un simple
update sur
toute la table comme montre Fred M :
Update MATABLE
Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
br
"Fred M" <fmichalak@avolys.com> wrote in message
news:01a301c38efc$c818ff10$a001280a@phx.gbl...
Le fetch n'est peut-être pas dans ton cas obligatoire : et
si on essayait la fonction Space ?
ex :
Update MATABLE
Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2
donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher...
Bon courage.
Fred
>-----Message d'origine-----
>Bonsoir,
>
>Je m'interresse depuis peu au T-SQL et ce jour, j'ai
souhaité faire une mise
>a jour sur un champ précis dans une table.
>
>Exemple :
>
>Je dispose d'un champs strTelTelephone, qui de temps en
temps est sur 9 voir
>8 meme 7 (ce sont des vieilles données)....
>Pour des raisons diverses liés à notre systeme info, je
souhaitemettre celui
>ci sur 10 meme si il est erroné....
>
>Je code en générale en ASP donc là pas de problème pour
faire une Boucle...
>
>Par contre, j'ai voulu expérimenté le T-SQL...
>
>Et j'ai fais quelque chose dans le genre (désolé j'ai pas
la requête exacte
>sur moi)
>
>While (select strTel from MATABLE where len(strtel) < 10)
>Begin
> Update MATABLE
> Set StrTel = "0" + strTel
>End
>
>Bien sur cela n'a pas fonctionné....
>
>Et je me suis interressé ensuite aux curseurs (FETCH) qui
si j'ai bien
>compris (j'espère) me permette de faire semblablement la
meme chose, j'ai
>trouvé quelque info la dessus, notamment dans la DOC SQL
SERVER mais nacash,
>pas moyen non plus de faire un UPDATE cependant je
n'avais pas de message
>d'erreur, l'analyseur m'indiquait que la requete était
acomplie.
>
>Si l'un de vous pouvais me donner la différence entre
WHILE et FETCH...et
>eventuellement me donner un exemple de mise a jour de
champs avec chaque
>instruction, j'en serais ravis....
>
>Encore merci a tous et bonne soirée !
>
>
>.
>
Attention à limiter l'effet d'un UPDATE par une clause WHERE
Update MATABLE Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
WHERE LEN(strtel) < 10
-- Bien cordialement Med Bouchenafa TETRASET 75015 Paris "bruno reiter [MVP]" wrote in message news:
effectivement, il n'y a besoin ni de while, ni de curseur, un simple
update sur
toute la table comme montre Fred M : Update MATABLE Set StrTel = REPLICATE('0',10-LEN(strTel)) + strTel
br
"Fred M" wrote in message news:01a301c38efc$c818ff10$ Le fetch n'est peut-être pas dans ton cas obligatoire : et si on essayait la fonction Space ? ex : Update MATABLE Set StrTel = SPACE(10-LEN(strTel)) + strTel
Ainsi si ton n° fait 8 caract. 10-8 = 2 donc il va insérer à sa gauche space(2) caractères
Je n'ai pas testé mais ça devrait marcher... Bon courage. Fred
>-----Message d'origine----- >Bonsoir, > >Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une mise >a jour sur un champ précis dans une table. > >Exemple : > >Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9 voir >8 meme 7 (ce sont des vieilles données).... >Pour des raisons diverses liés à notre systeme info, je souhaitemettre celui >ci sur 10 meme si il est erroné.... > >Je code en générale en ASP donc là pas de problème pour faire une Boucle... > >Par contre, j'ai voulu expérimenté le T-SQL... > >Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête exacte >sur moi) > >While (select strTel from MATABLE where len(strtel) < 10) >Begin > Update MATABLE > Set StrTel = "0" + strTel >End > >Bien sur cela n'a pas fonctionné.... > >Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien >compris (j'espère) me permette de faire semblablement la meme chose, j'ai >trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais nacash, >pas moyen non plus de faire un UPDATE cependant je n'avais pas de message >d'erreur, l'analyseur m'indiquait que la requete était acomplie. > >Si l'un de vous pouvais me donner la différence entre WHILE et FETCH...et >eventuellement me donner un exemple de mise a jour de champs avec chaque >instruction, j'en serais ravis.... > >Encore merci a tous et bonne soirée ! > > >. >
michael
Merci à tous....j'essaierais de mettre en pratique ces conseils dès demain !!!
"Fred BROUARD" a écrit dans le message de news:
Il faut faire une curseur for update.
DECLARE cursor_name CURSOR FOR select_statement FOR UPDATE [ OF column_name [ ,...n ] ] } ]
dès lors tu pourra modifier directement la colonne dans les varaibles du curseur.
A +
michael a écrit: > Bonsoir, > > Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une
mise
> a jour sur un champ précis dans une table. > > Exemple : > > Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9
voir
> 8 meme 7 (ce sont des vieilles données).... > Pour des raisons diverses liés à notre systeme info, je souhaitemettre
celui
> ci sur 10 meme si il est erroné.... > > Je code en générale en ASP donc là pas de problème pour faire une
Boucle...
> > Par contre, j'ai voulu expérimenté le T-SQL... > > Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête
exacte
> sur moi) > > While (select strTel from MATABLE where len(strtel) < 10) > Begin > Update MATABLE > Set StrTel = "0" + strTel > End > > Bien sur cela n'a pas fonctionné.... > > Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien > compris (j'espère) me permette de faire semblablement la meme chose,
j'ai
> trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais
nacash,
> pas moyen non plus de faire un UPDATE cependant je n'avais pas de
message
> d'erreur, l'analyseur m'indiquait que la requete était acomplie. > > Si l'un de vous pouvais me donner la différence entre WHILE et
FETCH...et
> eventuellement me donner un exemple de mise a jour de champs avec chaque > instruction, j'en serais ravis.... > > Encore merci a tous et bonne soirée ! > >
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************
Merci à tous....j'essaierais de mettre en pratique ces conseils dès demain
!!!
"Fred BROUARD" <brouardf@club-internet.fr> a écrit dans le message de
news:uRBVO0vjDHA.2580@TK2MSFTNGP10.phx.gbl...
Il faut faire une curseur for update.
DECLARE cursor_name CURSOR
FOR select_statement
FOR UPDATE [ OF column_name [ ,...n ] ] } ]
dès lors tu pourra modifier directement la colonne dans les varaibles du
curseur.
A +
michael a écrit:
> Bonsoir,
>
> Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une
mise
> a jour sur un champ précis dans une table.
>
> Exemple :
>
> Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9
voir
> 8 meme 7 (ce sont des vieilles données)....
> Pour des raisons diverses liés à notre systeme info, je souhaitemettre
celui
> ci sur 10 meme si il est erroné....
>
> Je code en générale en ASP donc là pas de problème pour faire une
Boucle...
>
> Par contre, j'ai voulu expérimenté le T-SQL...
>
> Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête
exacte
> sur moi)
>
> While (select strTel from MATABLE where len(strtel) < 10)
> Begin
> Update MATABLE
> Set StrTel = "0" + strTel
> End
>
> Bien sur cela n'a pas fonctionné....
>
> Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien
> compris (j'espère) me permette de faire semblablement la meme chose,
j'ai
> trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais
nacash,
> pas moyen non plus de faire un UPDATE cependant je n'avais pas de
message
> d'erreur, l'analyseur m'indiquait que la requete était acomplie.
>
> Si l'un de vous pouvais me donner la différence entre WHILE et
FETCH...et
> eventuellement me donner un exemple de mise a jour de champs avec chaque
> instruction, j'en serais ravis....
>
> Encore merci a tous et bonne soirée !
>
>
--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************
Merci à tous....j'essaierais de mettre en pratique ces conseils dès demain !!!
"Fred BROUARD" a écrit dans le message de news:
Il faut faire une curseur for update.
DECLARE cursor_name CURSOR FOR select_statement FOR UPDATE [ OF column_name [ ,...n ] ] } ]
dès lors tu pourra modifier directement la colonne dans les varaibles du curseur.
A +
michael a écrit: > Bonsoir, > > Je m'interresse depuis peu au T-SQL et ce jour, j'ai souhaité faire une
mise
> a jour sur un champ précis dans une table. > > Exemple : > > Je dispose d'un champs strTelTelephone, qui de temps en temps est sur 9
voir
> 8 meme 7 (ce sont des vieilles données).... > Pour des raisons diverses liés à notre systeme info, je souhaitemettre
celui
> ci sur 10 meme si il est erroné.... > > Je code en générale en ASP donc là pas de problème pour faire une
Boucle...
> > Par contre, j'ai voulu expérimenté le T-SQL... > > Et j'ai fais quelque chose dans le genre (désolé j'ai pas la requête
exacte
> sur moi) > > While (select strTel from MATABLE where len(strtel) < 10) > Begin > Update MATABLE > Set StrTel = "0" + strTel > End > > Bien sur cela n'a pas fonctionné.... > > Et je me suis interressé ensuite aux curseurs (FETCH) qui si j'ai bien > compris (j'espère) me permette de faire semblablement la meme chose,
j'ai
> trouvé quelque info la dessus, notamment dans la DOC SQL SERVER mais
nacash,
> pas moyen non plus de faire un UPDATE cependant je n'avais pas de
message
> d'erreur, l'analyseur m'indiquait que la requete était acomplie. > > Si l'un de vous pouvais me donner la différence entre WHILE et
FETCH...et
> eventuellement me donner un exemple de mise a jour de champs avec chaque > instruction, j'en serais ravis.... > > Encore merci a tous et bonne soirée ! > >
-- Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ****************** mailto: ******************