bonjour,
je souhaite creer un curseur pour faire la mise à jour d'une reference.
j'ai une table [Stock MP] avec des references commencant par ESN001 ou
E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour
cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR
FOR
SELECT [Référence]
FROM [stock matières premières]
WHERE [référence] like 'E%'
OPEN C_ech
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0
BEGIN
update [stock matières premières] set [référence] = 'EM' + right('000'
+ @i,4);
set @i = @i+1
END
rollback
commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la
reference en EM.... Avec cette instruction il me change toute les
reference en EM0001.
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
Med Bouchenafa
inutile de faire un curseur
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'E0%';
-- Bien cordialement Med Bouchenafa
"chris81" wrote in message news:
bonjour, je souhaite creer un curseur pour faire la mise à jour d'une reference. j'ai une table [Stock MP] avec des references commencant par ESN001 ou E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ech DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN update [stock matières premières] set [référence] = 'EM' + right('000' + @i,4); set @i = @i+1 END
rollback commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la reference en EM.... Avec cette instruction il me change toute les reference en EM0001.
Une solution?? merci
inutile de faire un curseur
UPDATE [stock matières premières]
SET [référence] = 'EM0' + RIGHT(référence, 3)
WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières]
SET [référence] = 'EM0' + RIGHT(référence, 3)
WHERE [référence] LIKE 'E0%';
--
Bien cordialement
Med Bouchenafa
"chris81" <nospam@nospam.fr> wrote in message
news:mn.f3c07d6ac9e21ced.62161@nospam.fr...
bonjour,
je souhaite creer un curseur pour faire la mise à jour d'une reference.
j'ai une table [Stock MP] avec des references commencant par ESN001 ou
E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour
cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR
FOR
SELECT [Référence]
FROM [stock matières premières]
WHERE [référence] like 'E%'
OPEN C_ech
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0
BEGIN
update [stock matières premières] set [référence] = 'EM' + right('000' +
@i,4);
set @i = @i+1
END
rollback
commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la
reference en EM.... Avec cette instruction il me change toute les
reference en EM0001.
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'E0%';
-- Bien cordialement Med Bouchenafa
"chris81" wrote in message news:
bonjour, je souhaite creer un curseur pour faire la mise à jour d'une reference. j'ai une table [Stock MP] avec des references commencant par ESN001 ou E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ech DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN update [stock matières premières] set [référence] = 'EM' + right('000' + @i,4); set @i = @i+1 END
rollback commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la reference en EM.... Avec cette instruction il me change toute les reference en EM0001.
Une solution?? merci
chris81
Il se trouve que Med Bouchenafa a formulé :
inutile de faire un curseur
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'E0%';
-- Bien cordialement Med Bouchenafa
"chris81" wrote in message news:
bonjour, je souhaite creer un curseur pour faire la mise à jour d'une reference. j'ai une table [Stock MP] avec des references commencant par ESN001 ou E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ech DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN update [stock matières premières] set [référence] = 'EM' + right('000' + @i,4); set @i = @i+1 END
rollback commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la reference en EM.... Avec cette instruction il me change toute les reference en EM0001.
Une solution?? merci
merci
Il se trouve que Med Bouchenafa a formulé :
inutile de faire un curseur
UPDATE [stock matières premières]
SET [référence] = 'EM0' + RIGHT(référence, 3)
WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières]
SET [référence] = 'EM0' + RIGHT(référence, 3)
WHERE [référence] LIKE 'E0%';
--
Bien cordialement
Med Bouchenafa
"chris81" <nospam@nospam.fr> wrote in message
news:mn.f3c07d6ac9e21ced.62161@nospam.fr...
bonjour,
je souhaite creer un curseur pour faire la mise à jour d'une reference.
j'ai une table [Stock MP] avec des references commencant par ESN001 ou
E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour
cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR
FOR
SELECT [Référence]
FROM [stock matières premières]
WHERE [référence] like 'E%'
OPEN C_ech
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0
BEGIN
update [stock matières premières] set [référence] = 'EM' + right('000' +
@i,4);
set @i = @i+1
END
rollback
commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la
reference en EM.... Avec cette instruction il me change toute les reference
en EM0001.
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'E0%';
-- Bien cordialement Med Bouchenafa
"chris81" wrote in message news:
bonjour, je souhaite creer un curseur pour faire la mise à jour d'une reference. j'ai une table [Stock MP] avec des references commencant par ESN001 ou E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ech DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN update [stock matières premières] set [référence] = 'EM' + right('000' + @i,4); set @i = @i+1 END
rollback commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la reference en EM.... Avec cette instruction il me change toute les reference en EM0001.
Une solution?? merci
merci
Christian
Med Bouchenafa a écrit :
inutile de faire un curseur
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières] SET [référence] = 'EM0' + RIGHT(référence, 3) WHERE [référence] LIKE 'E0%';
en fait si j'ai besoin d'un curseur car defois j'ai ESN01, ESN002...
Med Bouchenafa a écrit :
inutile de faire un curseur
UPDATE [stock matières premières]
SET [référence] = 'EM0' + RIGHT(référence, 3)
WHERE [référence] LIKE 'ESN%';
UPDATE [stock matières premières]
SET [référence] = 'EM0' + RIGHT(référence, 3)
WHERE [référence] LIKE 'E0%';
en fait si j'ai besoin d'un curseur car defois j'ai ESN01, ESN002...
DECLARE C_ECH CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ECH
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN UPDATE [stock matières premières] SET [référence] = 'EM' + right('000' + @i, 4) WHERE CURRENT OF C_ECH IF @@ERROR <> 0 GOTO LBL_ERROR
Au passage il est FORTEMENT déconseillé d'utiliser des caractères diacritiques et des espaces dans des noms d'objets. Cela est interdit par la norme et certains logiciels ne les accemptents pas. Vous courrez donc au devant d'ennuis avec de tels noms.
A +
-- 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 ***********************
chris81 a écrit :
bonjour, je souhaite creer un curseur pour faire la mise à jour d'une reference. j'ai une table [Stock MP] avec des references commencant par ESN001 ou E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ech DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN update [stock matières premières] set [référence] = 'EM' + right('000' + @i,4); set @i = @i+1 END
rollback commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la reference en EM.... Avec cette instruction il me change toute les reference en EM0001.
DECLARE C_ECH CURSOR
FOR
SELECT [Référence]
FROM [stock matières premières]
WHERE [référence] like 'E%'
OPEN C_ECH
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE [stock matières premières]
SET [référence] = 'EM' + right('000' + @i, 4)
WHERE CURRENT OF C_ECH
IF @@ERROR <> 0 GOTO LBL_ERROR
Au passage il est FORTEMENT déconseillé d'utiliser des caractères
diacritiques et des espaces dans des noms d'objets. Cela est interdit
par la norme et certains logiciels ne les accemptents pas.
Vous courrez donc au devant d'ennuis avec de tels noms.
A +
--
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 ***********************
chris81 a écrit :
bonjour,
je souhaite creer un curseur pour faire la mise à jour d'une reference.
j'ai une table [Stock MP] avec des references commencant par ESN001 ou
E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour
cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR
FOR
SELECT [Référence]
FROM [stock matières premières]
WHERE [référence] like 'E%'
OPEN C_ech
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0
BEGIN
update [stock matières premières] set [référence] = 'EM' +
right('000' + @i,4);
set @i = @i+1
END
rollback
commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la
reference en EM.... Avec cette instruction il me change toute les
reference en EM0001.
DECLARE C_ECH CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ECH
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN UPDATE [stock matières premières] SET [référence] = 'EM' + right('000' + @i, 4) WHERE CURRENT OF C_ECH IF @@ERROR <> 0 GOTO LBL_ERROR
Au passage il est FORTEMENT déconseillé d'utiliser des caractères diacritiques et des espaces dans des noms d'objets. Cela est interdit par la norme et certains logiciels ne les accemptents pas. Vous courrez donc au devant d'ennuis avec de tels noms.
A +
-- 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 ***********************
chris81 a écrit :
bonjour, je souhaite creer un curseur pour faire la mise à jour d'une reference. j'ai une table [Stock MP] avec des references commencant par ESN001 ou E0002... j'aimerai mettre les references comme EM0001, EM0002 .... pour cela j'ai pensé à un curseur du style
begin transaction
DECLARE C_ech CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ech DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN update [stock matières premières] set [référence] = 'EM' + right('000' + @i,4); set @i = @i+1 END
rollback commit
Comment puis je faire pour qu'il me balaie chaque ligne et me change la reference en EM.... Avec cette instruction il me change toute les reference en EM0001.
DECLARE C_ECH CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ECH
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN UPDATE [stock matières premières] SET [référence] = 'EM' + right('000' + @i, 4) WHERE CURRENT OF C_ECH IF @@ERROR <> 0 GOTO LBL_ERROR
Au passage il est FORTEMENT déconseillé d'utiliser des caractères diacritiques et des espaces dans des noms d'objets. Cela est interdit par la norme et certains logiciels ne les accemptents pas. Vous courrez donc au devant d'ennuis avec de tels noms.
A +
je sais mais je reprend de l'existant et je suis le 1° à en patir...
DECLARE C_ECH CURSOR
FOR
SELECT [Référence]
FROM [stock matières premières]
WHERE [référence] like 'E%'
OPEN C_ECH
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE [stock matières premières]
SET [référence] = 'EM' + right('000' + @i, 4)
WHERE CURRENT OF C_ECH
IF @@ERROR <> 0 GOTO LBL_ERROR
Au passage il est FORTEMENT déconseillé d'utiliser des caractères
diacritiques et des espaces dans des noms d'objets. Cela est interdit
par la norme et certains logiciels ne les accemptents pas.
Vous courrez donc au devant d'ennuis avec de tels noms.
A +
je sais mais je reprend de l'existant et je suis le 1° à en patir...
DECLARE C_ECH CURSOR FOR SELECT [Référence] FROM [stock matières premières] WHERE [référence] like 'E%'
OPEN C_ECH
DECLARE @i int
set @i=1
WHILE @@FETCH_STATUS = 0 BEGIN UPDATE [stock matières premières] SET [référence] = 'EM' + right('000' + @i, 4) WHERE CURRENT OF C_ECH IF @@ERROR <> 0 GOTO LBL_ERROR
Au passage il est FORTEMENT déconseillé d'utiliser des caractères diacritiques et des espaces dans des noms d'objets. Cela est interdit par la norme et certains logiciels ne les accemptents pas. Vous courrez donc au devant d'ennuis avec de tels noms.
A +
je sais mais je reprend de l'existant et je suis le 1° à en patir...