[SQL2K] Récupération Erreur lors d'un execute
Bonjour,
Je crée des requêtes dynamique de mise à jour de données que j'execute dans un EXECUTE.
En gros voici le principe :
-- Via un curseur
POUR CHAQUE DONNEES
-1- Creation de la requete
-2- EXECUTE(<MA_REQUETE>)
Le tout est entouré d'une transaction et après chaque execute, je teste la valeur @@ERROR et so @@ERROR <> 0 ==> Via un GOTO je vais dans la partie rollback.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
-- [...]
-- Execute
EXECUTE(@STR_1)
-- Erreur ?
IF @@ERROR<>0
BEGIN
GOTO ROLLBACK_TRANSACTION
END
-- [...]
COMMIT_TRANSACTION:
PRINT 'COMMIT DE LA TRANSACTION'
COMMIT TRANSACTION
GOTO END_TRANSACTION
ROLLBACK_TRANSACTION:
PRINT 'ANNULATION DE LA TRANSACTION'
ROLLBACK TRANSACTION
GOTO END_TRANSACTION
END_TRANSACTION:
CLOSE CUR_REQUETE
DEALLOCATE CUR_REQUETE |
Quelqu'un aurait une idée ?
Recuperartion d'une erreur lors d'un execute
Bjr
En fait j'ai le meme pb et j'aimerais vraiment avoir une solution. Car je n'arrive pas a recuper le code de l'erreur.Exemple
J'ai la procedure suivante:
create proc tesInsert
as
insert into cpteclthist(dateoperation) values('juin 1 2007 10:06A')
if @@error <> 0
begin
raiserror('insert 1 planté',16,1)
end
Mais lorsque j'execute cette procedure ( exec testInsert ) j'obtiend plutot :Serveur : Msg 241, Niveau 16, État 1, Procédure tes, Ligne 3
Erreur de syntaxe lors de la conversion d'une valeur datetime à partir d'une chaîne de caractères.
Je voudrais bien savoir comment intercepter ce message d'erreur. En passant je bosse avec sqlserver 2000
merci d'avance