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?
oui déjà fait ça ... fonctionne! – ArjanP