Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur
retourné par BCP (duplicate key par exemple), @@Error retourne toujours la
valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et d'intercepter
l'erreur ?
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
Bouarroudj Mohamed
BCP est un external outil et le comportement de SQL Server lors de l'erreur est de terminer la connection que BCP a ouvert (BCP en tant que outil externe ouvre une nouvelle connection), il y'a pas de lien entre les deux connections et la variable @@ERROR est toujours a 0
Vous pouvez contourner cette limitation en dirigeant la sortie du BCP vers une table temporaire Voici un exemple :
insert into #BcpTemp exec master.dbo.xp_cmdshell 'bcp DBName.dbo.TableName IN ...'
if exists (select * from #BcpTemp where BCPOut like '%Error =%') begin -- traitement d'erreur ici end
Bouarroudj Mohamed http://www.sqldbtools.com/
"Mark" wrote in message news:%
Bonjour,
Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur retourné par BCP (duplicate key par exemple), @@Error retourne toujours la valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et d'intercepter l'erreur ?
Merci
BCP est un external outil et le comportement de SQL Server lors de l'erreur
est de terminer la connection que BCP a ouvert (BCP en tant que outil
externe ouvre une nouvelle connection), il y'a pas de lien entre les deux
connections et la variable @@ERROR est toujours a 0
Vous pouvez contourner cette limitation en dirigeant la sortie du BCP vers
une table temporaire
Voici un exemple :
insert into #BcpTemp
exec master.dbo.xp_cmdshell 'bcp DBName.dbo.TableName IN ...'
if exists (select * from #BcpTemp where BCPOut like '%Error =%')
begin
-- traitement d'erreur ici
end
Bouarroudj Mohamed
http://www.sqldbtools.com/
"Mark" <sauvemark@yahoo.com> wrote in message
news:%23CqE8sfPGHA.3924@TK2MSFTNGP14.phx.gbl...
Bonjour,
Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur
retourné par BCP (duplicate key par exemple), @@Error retourne toujours la
valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et
d'intercepter l'erreur ?
BCP est un external outil et le comportement de SQL Server lors de l'erreur est de terminer la connection que BCP a ouvert (BCP en tant que outil externe ouvre une nouvelle connection), il y'a pas de lien entre les deux connections et la variable @@ERROR est toujours a 0
Vous pouvez contourner cette limitation en dirigeant la sortie du BCP vers une table temporaire Voici un exemple :
insert into #BcpTemp exec master.dbo.xp_cmdshell 'bcp DBName.dbo.TableName IN ...'
if exists (select * from #BcpTemp where BCPOut like '%Error =%') begin -- traitement d'erreur ici end
Bouarroudj Mohamed http://www.sqldbtools.com/
"Mark" wrote in message news:%
Bonjour,
Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur retourné par BCP (duplicate key par exemple), @@Error retourne toujours la valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et d'intercepter l'erreur ?
Merci
Med Bouchenafa
En complement, la commande BULK INSERT, presque pareil à BCP IN pourrait peut-être solutionner ton cas
bien cordialement Med bouchenafa "Mark" wrote in message news:%
Bonjour,
Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur retourné par BCP (duplicate key par exemple), @@Error retourne toujours la valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et d'intercepter l'erreur ?
Merci
En complement, la commande BULK INSERT, presque pareil à BCP IN pourrait
peut-être solutionner ton cas
bien cordialement
Med bouchenafa
"Mark" <sauvemark@yahoo.com> wrote in message
news:%23CqE8sfPGHA.3924@TK2MSFTNGP14.phx.gbl...
Bonjour,
Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur
retourné par BCP (duplicate key par exemple), @@Error retourne toujours la
valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et
d'intercepter l'erreur ?
En complement, la commande BULK INSERT, presque pareil à BCP IN pourrait peut-être solutionner ton cas
bien cordialement Med bouchenafa "Mark" wrote in message news:%
Bonjour,
Lors du BCP IN et en cas d'erreur, je n'arrive pas a intercepter l'erreur retourné par BCP (duplicate key par exemple), @@Error retourne toujours la valeur 0 qu'il y'a une erruer ou non !
Est ce qu'il y'a une maniere de contourner cette limitation et d'intercepter l'erreur ?