Scripts.CreateStoredProcedureAsync Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Crée une procédure stockée en tant qu’opération asynchrone dans le service Azure Cosmos DB.
public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.Scripts.StoredProcedureResponse> CreateStoredProcedureAsync (Microsoft.Azure.Cosmos.Scripts.StoredProcedureProperties storedProcedureProperties, Microsoft.Azure.Cosmos.RequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateStoredProcedureAsync : Microsoft.Azure.Cosmos.Scripts.StoredProcedureProperties * Microsoft.Azure.Cosmos.RequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.Scripts.StoredProcedureResponse>
Public MustOverride Function CreateStoredProcedureAsync (storedProcedureProperties As StoredProcedureProperties, Optional requestOptions As RequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of StoredProcedureResponse)
Paramètres
- storedProcedureProperties
- StoredProcedureProperties
Procédure stockée à créer.
- requestOptions
- RequestOptions
(Facultatif) Options de la demande de procédure stockée.
- cancellationToken
- CancellationToken
(Facultatif) CancellationToken représentant l’annulation de la demande.
Retours
StoredProcedureProperties qui a été créé dans un Task objet représentant la réponse du service pour l’opération asynchrone.
Exceptions
Si storedProcedureProperties
n’est pas défini.
Représente une consolidation des échecs qui se sont produits pendant le traitement asynchrone. Recherchez la ou les exceptions réelles dans InnerExceptions
Cette exception peut encapsuler de nombreux types d’erreurs différents. Pour déterminer l’erreur spécifique, examinez toujours la propriété StatusCode. Voici quelques codes courants que vous pouvez obtenir lors de la création d’un document :
StatusCode | Raison de l’exception |
---|---|
400 | BadRequest : cela signifie qu’il y a eu un problème avec la demande fournie. Il est probable qu’un ID n’a pas été fourni pour la procédure stockée ou que le corps a été mal formé. |
403 | Interdit : vous avez atteint votre quota de procédures stockées pour la collection fournie. Contactez le support technique pour augmenter ce quota. |
409 | Conflit : cela signifie qu’un StoredProcedureProperties avec un ID correspondant à l’ID que vous avez fourni existait déjà. |
413 | RequestEntityTooLarge : cela signifie que le corps du StoredProcedureProperties que vous avez essayé de créer était trop grand. |
Exemples
Cela crée et exécute une procédure stockée qui ajoute une chaîne au premier élément retourné par la requête.
string sprocBody = @"function simple(prefix)
{
var collection = getContext().getCollection();
// Query documents and take 1st item.
var isAccepted = collection.queryDocuments(
collection.getSelfLink(),
'SELECT * FROM root r',
function(err, feed, options) {
if (err)throw err;
// Check the feed and if it's empty, set the body to 'no docs found',
// Otherwise just take 1st element from the feed.
if (!feed || !feed.length) getContext().getResponse().setBody(""no docs found"");
else getContext().getResponse().setBody(prefix + JSON.stringify(feed[0]));
});
if (!isAccepted) throw new Error(""The query wasn't accepted by the server. Try again/use continuation token between API and script."");
}";
Scripts scripts = this.container.Scripts;
StoredProcedureProperties storedProcedure = new StoredProcedureProperties(id, sprocBody);
StoredProcedureResponse storedProcedureResponse = await scripts.CreateStoredProcedureAsync(storedProcedure);
// Execute the stored procedure
CosmosItemResponse<string> sprocResponse = await scripts.ExecuteStoredProcedureAsync<string, string>(
id,
"Item as a string: ",
new PartitionKey(testPartitionId));
Console.WriteLine("sprocResponse.Resource");
S’applique à
Azure SDK for .NET