Voici la requête que je veux effectuer:
SET @cptLigne=1
UPDATE [C105-Lignes de devis]
SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000',
qte=qteLigne+100
FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101
WHERE C101.[T101-1-Code devis]=C105.[T105-1-Code devis] and
C105.[T105-1-code devis]=@codeDevisD and
C105.[T105-2-code niveau 1]=@niv1D and
C105.[T105-3-code niveau 2]=@niv2D and
C105.[T105-4-code niveau 3]=@niv3D and
C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements
Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de
1
Actuellement avec cette requête cptligne est à 2 pour tous les
enregistrements mis à jour
Jette un oeil dans l aide du coté de la variable systeme @@ROWCOUNT
J espere que cel t aidera
-----Message d'origine----- Bonjour,
Voici la requête que je veux effectuer: SET @cptLigne=1
UPDATE [C105-Lignes de devis] SET repere1= [T105-1-code devis]+cast(cptLigne+1 as
varchar)+'000',
qte=qteLigne+100 FROM [C105-Lignes de devis] C105, [C101-Devis en tête]
C101
WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis]
and
C105.[T105-1-code devis]=@codeDevisD and C105.[T105-2-code niveau 1]=@niv1D and C105.[T105-3-code niveau 2]=@niv2D and C105.[T105-4-code niveau 3]=@niv3D and C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements Je veux que pour chaque enregistrement le compteur
(cptLigne) s'incrémente de
1
Actuellement avec cette requête cptligne est à 2 pour
tous les
enregistrements mis à jour
Merci de m'aiguiller
.
Jette un oeil dans l aide du coté de la variable systeme
@@ROWCOUNT
J espere que cel t aidera
-----Message d'origine-----
Bonjour,
Voici la requête que je veux effectuer:
SET @cptLigne=1
UPDATE [C105-Lignes de devis]
SET repere1= [T105-1-code devis]+cast(cptLigne+1 as
varchar)+'000',
qte=qteLigne+100
FROM [C105-Lignes de devis] C105, [C101-Devis en tête]
C101
WHERE C101.[T101-1-Code devis]=C105.[T105-1-Code devis]
and
C105.[T105-1-code devis]=@codeDevisD and
C105.[T105-2-code niveau 1]=@niv1D and
C105.[T105-3-code niveau 2]=@niv2D and
C105.[T105-4-code niveau 3]=@niv3D and
C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements
Je veux que pour chaque enregistrement le compteur
(cptLigne) s'incrémente de
1
Actuellement avec cette requête cptligne est à 2 pour
Jette un oeil dans l aide du coté de la variable systeme @@ROWCOUNT
J espere que cel t aidera
-----Message d'origine----- Bonjour,
Voici la requête que je veux effectuer: SET @cptLigne=1
UPDATE [C105-Lignes de devis] SET repere1= [T105-1-code devis]+cast(cptLigne+1 as
varchar)+'000',
qte=qteLigne+100 FROM [C105-Lignes de devis] C105, [C101-Devis en tête]
C101
WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis]
and
C105.[T105-1-code devis]=@codeDevisD and C105.[T105-2-code niveau 1]=@niv1D and C105.[T105-3-code niveau 2]=@niv2D and C105.[T105-4-code niveau 3]=@niv3D and C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements Je veux que pour chaque enregistrement le compteur
(cptLigne) s'incrémente de
1
Actuellement avec cette requête cptligne est à 2 pour
tous les
enregistrements mis à jour
Merci de m'aiguiller
.
Fred BROUARD
Les bases de données procèdent d'une logique ensembliste et non procédurale
Cela veut dire que ce n'est pas de cette manière que tu obtiendra une exécution ligne à ligne. Une requête est évaluée globalement. Chaque fois que cela est possible le serveur n'exécutera qu'une seule fois le traitement, quel que soit le nombre de lignes...
Si tu veut vraiement une exécution ligne à ligne il faut utiliser un curseur donc du code procédural par exemple par une procédure stockée.
Mais je ne voit aucun intérêt à faire ce que tu fais. Explique moi concrétement à quoi cela sert-il ? Quel est le but final ? Un exemple précis STP...
CONSEIL : tes noms d'objets (nom de table, nom de colonne etc... ) ne sont pas conforme à la norme SQL et sont dangereux. En effet l'utilisation de caractères diacritiques (accents, cédilles... ) bine que possible sous SQL Server est dangereuse et à déconseiller fortement, comme l'utilisation de blancs et de caractères de ponctuation...
A lire : http://sqlpro.developpez.com/SQL_AZ_E.html#NomsSQL
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 ************************ www.datasapiens.com *************************
Pierre-Yves a écrit:
Bonjour,
Voici la requête que je veux effectuer: SET @cptLigne=1
UPDATE [C105-Lignes de devis] SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000', qte=qteLigne+100 FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101 WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis] and C105.[T105-1-code devis]=@codeDevisD and C105.[T105-2-code niveau 1]=@niv1D and C105.[T105-3-code niveau 2]=@niv2D and C105.[T105-4-code niveau 3]=@niv3D and C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de 1
Actuellement avec cette requête cptligne est à 2 pour tous les enregistrements mis à jour
Merci de m'aiguiller
Les bases de données procèdent d'une logique ensembliste et non procédurale
Cela veut dire que ce n'est pas de cette manière que tu obtiendra une exécution ligne à ligne.
Une requête est évaluée globalement. Chaque fois que cela est possible le serveur n'exécutera qu'une seule fois le
traitement, quel que soit le nombre de lignes...
Si tu veut vraiement une exécution ligne à ligne il faut utiliser un curseur donc du code procédural par exemple par une
procédure stockée.
Mais je ne voit aucun intérêt à faire ce que tu fais. Explique moi concrétement à quoi cela sert-il ? Quel est le but
final ? Un exemple précis STP...
CONSEIL : tes noms d'objets (nom de table, nom de colonne etc... ) ne sont pas conforme à la norme SQL et sont
dangereux. En effet l'utilisation de caractères diacritiques (accents, cédilles... ) bine que possible sous SQL Server
est dangereuse et à déconseiller fortement, comme l'utilisation de blancs et de caractères de ponctuation...
A lire : http://sqlpro.developpez.com/SQL_AZ_E.html#NomsSQL
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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
************************ www.datasapiens.com *************************
Pierre-Yves a écrit:
Bonjour,
Voici la requête que je veux effectuer:
SET @cptLigne=1
UPDATE [C105-Lignes de devis]
SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000',
qte=qteLigne+100
FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101
WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis] and
C105.[T105-1-code devis]=@codeDevisD and
C105.[T105-2-code niveau 1]=@niv1D and
C105.[T105-3-code niveau 2]=@niv2D and
C105.[T105-4-code niveau 3]=@niv3D and
C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements
Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de
1
Actuellement avec cette requête cptligne est à 2 pour tous les
enregistrements mis à jour
Les bases de données procèdent d'une logique ensembliste et non procédurale
Cela veut dire que ce n'est pas de cette manière que tu obtiendra une exécution ligne à ligne. Une requête est évaluée globalement. Chaque fois que cela est possible le serveur n'exécutera qu'une seule fois le traitement, quel que soit le nombre de lignes...
Si tu veut vraiement une exécution ligne à ligne il faut utiliser un curseur donc du code procédural par exemple par une procédure stockée.
Mais je ne voit aucun intérêt à faire ce que tu fais. Explique moi concrétement à quoi cela sert-il ? Quel est le but final ? Un exemple précis STP...
CONSEIL : tes noms d'objets (nom de table, nom de colonne etc... ) ne sont pas conforme à la norme SQL et sont dangereux. En effet l'utilisation de caractères diacritiques (accents, cédilles... ) bine que possible sous SQL Server est dangereuse et à déconseiller fortement, comme l'utilisation de blancs et de caractères de ponctuation...
A lire : http://sqlpro.developpez.com/SQL_AZ_E.html#NomsSQL
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 ************************ www.datasapiens.com *************************
Pierre-Yves a écrit:
Bonjour,
Voici la requête que je veux effectuer: SET @cptLigne=1
UPDATE [C105-Lignes de devis] SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000', qte=qteLigne+100 FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101 WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis] and C105.[T105-1-code devis]=@codeDevisD and C105.[T105-2-code niveau 1]=@niv1D and C105.[T105-3-code niveau 2]=@niv2D and C105.[T105-4-code niveau 3]=@niv3D and C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de 1
Actuellement avec cette requête cptligne est à 2 pour tous les enregistrements mis à jour
Merci de m'aiguiller
Fred BROUARD
Les bases de données procèdent d'une logique ensembliste et non procédurale
Cela veut dire que ce n'est pas de cette manière que tu obtiendra une exécution ligne à ligne. Une requête est évaluée globalement. Chaque fois que cela est possible le serveur n'exécutera qu'une seule fois le traitement, quel que soit le nombre de lignes...
Si tu veut vraiement une exécution ligne à ligne il faut utiliser un curseur donc du code procédural par exemple par une procédure stockée.
Mais je ne voit aucun intérêt à faire ce que tu fais. Explique moi concrétement à quoi cela sert-il ? Quel est le but final ? Un exemple précis STP...
CONSEIL : tes noms d'objets (nom de table, nom de colonne etc... ) ne sont pas conforme à la norme SQL et sont dangereux. En effet l'utilisation de caractères diacritiques (accents, cédilles... ) bine que possible sous SQL Server est dangereuse et à déconseiller fortement, comme l'utilisation de blancs et de caractères de ponctuation...
A lire : http://sqlpro.developpez.com/SQL_AZ_E.html#NomsSQL
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 ************************ www.datasapiens.com *************************
Pierre-Yves a écrit:
Bonjour,
Voici la requête que je veux effectuer: SET @cptLigne=1
UPDATE [C105-Lignes de devis] SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000', qte=qteLigne+100 FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101 WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis] and C105.[T105-1-code devis]=@codeDevisD and C105.[T105-2-code niveau 1]=@niv1D and C105.[T105-3-code niveau 2]=@niv2D and C105.[T105-4-code niveau 3]=@niv3D and C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de 1
Actuellement avec cette requête cptligne est à 2 pour tous les enregistrements mis à jour
Merci de m'aiguiller
Les bases de données procèdent d'une logique ensembliste et non procédurale
Cela veut dire que ce n'est pas de cette manière que tu obtiendra une exécution ligne à ligne.
Une requête est évaluée globalement. Chaque fois que cela est possible le serveur n'exécutera qu'une seule fois le
traitement, quel que soit le nombre de lignes...
Si tu veut vraiement une exécution ligne à ligne il faut utiliser un curseur donc du code procédural par exemple par une
procédure stockée.
Mais je ne voit aucun intérêt à faire ce que tu fais. Explique moi concrétement à quoi cela sert-il ? Quel est le but
final ? Un exemple précis STP...
CONSEIL : tes noms d'objets (nom de table, nom de colonne etc... ) ne sont pas conforme à la norme SQL et sont
dangereux. En effet l'utilisation de caractères diacritiques (accents, cédilles... ) bine que possible sous SQL Server
est dangereuse et à déconseiller fortement, comme l'utilisation de blancs et de caractères de ponctuation...
A lire : http://sqlpro.developpez.com/SQL_AZ_E.html#NomsSQL
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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
************************ www.datasapiens.com *************************
Pierre-Yves a écrit:
Bonjour,
Voici la requête que je veux effectuer:
SET @cptLigne=1
UPDATE [C105-Lignes de devis]
SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000',
qte=qteLigne+100
FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101
WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis] and
C105.[T105-1-code devis]=@codeDevisD and
C105.[T105-2-code niveau 1]=@niv1D and
C105.[T105-3-code niveau 2]=@niv2D and
C105.[T105-4-code niveau 3]=@niv3D and
C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements
Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de
1
Actuellement avec cette requête cptligne est à 2 pour tous les
enregistrements mis à jour
Les bases de données procèdent d'une logique ensembliste et non procédurale
Cela veut dire que ce n'est pas de cette manière que tu obtiendra une exécution ligne à ligne. Une requête est évaluée globalement. Chaque fois que cela est possible le serveur n'exécutera qu'une seule fois le traitement, quel que soit le nombre de lignes...
Si tu veut vraiement une exécution ligne à ligne il faut utiliser un curseur donc du code procédural par exemple par une procédure stockée.
Mais je ne voit aucun intérêt à faire ce que tu fais. Explique moi concrétement à quoi cela sert-il ? Quel est le but final ? Un exemple précis STP...
CONSEIL : tes noms d'objets (nom de table, nom de colonne etc... ) ne sont pas conforme à la norme SQL et sont dangereux. En effet l'utilisation de caractères diacritiques (accents, cédilles... ) bine que possible sous SQL Server est dangereuse et à déconseiller fortement, comme l'utilisation de blancs et de caractères de ponctuation...
A lire : http://sqlpro.developpez.com/SQL_AZ_E.html#NomsSQL
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste 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 ************************ www.datasapiens.com *************************
Pierre-Yves a écrit:
Bonjour,
Voici la requête que je veux effectuer: SET @cptLigne=1
UPDATE [C105-Lignes de devis] SET repere1= [T105-1-code devis]+cast(cptLigne+1 as varchar)+'000', qte=qteLigne+100 FROM [C105-Lignes de devis] C105, [C101-Devis en tête] C101 WHERE C101.[T101-1-Code devis]Á05.[T105-1-Code devis] and C105.[T105-1-code devis]=@codeDevisD and C105.[T105-2-code niveau 1]=@niv1D and C105.[T105-3-code niveau 2]=@niv2D and C105.[T105-4-code niveau 3]=@niv3D and C105.[T105-5-N° ligne du devis]=@newLigneDevis
Cette requête va mettre à jour plusieurs enregistrements Je veux que pour chaque enregistrement le compteur(cptLigne) s'incrémente de 1
Actuellement avec cette requête cptligne est à 2 pour tous les enregistrements mis à jour