2010-02-02 8 views
0

je la tâche de flux de données suivantes dans mon package SSIS:transactions SSIS avec plusieurs commandes OLE DB

alt text http://img228.imageshack.us/img228/358/ssis1.png

Il lit un fichier à partir d'un fournisseur externe qui a des enregistrements avec une colonne « changement » qui cointains A, C ou D pour ajouter, modifier et supprimer. Je dois les traiter dans ma base de données SQL Server. La division conditionnelle vérifie la valeur de la colonne de modification et envoie la ligne à la commande appropriée. Cela fonctionne bien. Comme les fichiers d'entrée contiennent parfois des erreurs, j'aimerais rendre ce processus transactionnel (il y a 10 de ces tâches de flux de données).

Si j'accepte les transactions sur le package SSIS, les commandes OLE DB semblent toutefois interférer (elles ne fonctionnent pas sur les mêmes lignes). Je reçois l'erreur:

Error: 2010-02-02 12:21:08.39 
    Code: 0xC0202009 
    Source: name OLE DB Command 1 [58] 
    Description: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. 
Error code: 0x80004005. 
An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0 
" Hresult: 0x80004005 Description: "This operation conflicts with another pend 
ing operation on this transaction. The operation failed.". 
End Error 
Error: 2010-02-02 12:21:08.39 
    Code: 0xC004701A 
    Source: name SSIS.Pipeline 
    Description: component "OLE DB Command 1" (58) failed the pre-execute phase 
and returned error code 0xC0202009. 
End Error 
Progress: 2010-02-02 12:21:08.39 

J'ai essayé un ordre de la scission conditionnelle et tous les IsolationLevels sur les paramètres de la transaction, mais rien ne semble fonctionner. Si je fais la division conditionnelle utiliser seulement 1 des branches cela fonctionne bien. Comment procéder?

Répondre

1

Essayez de remplacer Destination SQL Server avec un "OLEDB Destination" pour les inserts.

+0

oui déjà fait ça ... fonctionne! – ArjanP

1

SSIS est si mauvais il me fait hurler - Seriosuly vous devriez revist si SSIS est l'outil approprié ici

Questions connexes