2017-10-09 10 views
2

J'ai une collection partitionnée et j'essaie d'effectuer une opération de lecture/upsert sur deux documents différents en utilisant des procédures stockées. Ces deux documents ne sont pas nécessairement dans la même partition. L'un des documents doit être mis à jour lors de la mise à jour de tout autre document. Selon ma compréhension, les procédures stockées peuvent être exécutées dans une seule partition de la collection. J'ai besoin de mettre à jour les deux documents en une seule transaction.CosmosDB: Impossible d'effectuer une transaction sur des documents à l'aide de procédures stockées

+0

Merci, c'est bon à savoir! – David

+0

Salut, des mises à jour maintenant? –

Répondre

3

Si la collection de la procédure stockée est enregistrée contre est une collection unique partition , la transaction est scope à tous les documents dans la collection. Si la collection est partitionnée, , les procédures stockées sont exécutées dans la zone de transaction d'une clé de partition unique . Chaque exécution de procédure stockée doit alors inclure une valeur de clé de partition correspondant à la portée de la transaction doit être exécutée.

Vous pouvez vous référer à la description ci-dessus qui a mentionné here.

Il semble que nous ne pouvons pas mettre à jour des documents inter-partitions en une seule transaction. Sinon, vous devrez peut-être réajuster votre base de données partitioning scheme car la clé de partitionnement ne peut pas être supprimée et modifiée après l'avoir définie.