CosmosScripts.CreateStoredProcedureAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt eine gespeicherte Prozedur als asynchronen Vorgang im Azure Cosmos DB-Dienst.
public abstract System.Threading.Tasks.Task<Azure.Response<Azure.Cosmos.Scripts.StoredProcedureProperties>> CreateStoredProcedureAsync (Azure.Cosmos.Scripts.StoredProcedureProperties storedProcedureProperties, Azure.Cosmos.RequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member CreateStoredProcedureAsync : Azure.Cosmos.Scripts.StoredProcedureProperties * Azure.Cosmos.RequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Azure.Response<Azure.Cosmos.Scripts.StoredProcedureProperties>>
Public MustOverride Function CreateStoredProcedureAsync (storedProcedureProperties As StoredProcedureProperties, Optional requestOptions As RequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of Response(Of StoredProcedureProperties))
Parameter
- storedProcedureProperties
- StoredProcedureProperties
Die zu erstellende gespeicherte Prozedur
- requestOptions
- RequestOptions
(Optional) Die Optionen für die Anforderung einer gespeicherten Prozedur RequestOptions
- cancellationToken
- CancellationToken
(Optional) CancellationToken stellt den Anforderungsabbruch dar.
Gibt zurück
Die StoredProcedureProperties erstellte , die in einem Task -Objekt enthalten ist, das die Dienstantwort für den asynchronen Vorgang darstellt.
Ausnahmen
Wenn storedProcedureProperties
nicht festgelegt ist.
Stellt eine Konsolidierung von Fehlern dar, die während der asynchronen Verarbeitung aufgetreten sind. Suchen Sie in InnerExceptions nach den tatsächlichen Ausnahmen.
Diese Ausnahme kann viele verschiedene Fehlertypen kapseln. Um den spezifischen Fehler zu ermitteln, sehen Sie sich immer die StatusCode-Eigenschaft an. Einige häufige Codes, die Sie beim Erstellen eines Dokuments erhalten können, sind:
StatusCode | Grund für die Ausnahme |
---|---|
400 | BadRequest: Dies bedeutet, dass mit der bereitgestellten Anforderung ein Fehler aufgetreten ist. Es ist wahrscheinlich, dass keine ID für die gespeicherte Prozedur angegeben wurde, oder der Textkörper wurde falsch formatiert. |
403 | Verboten: Sie haben ihr Kontingent an gespeicherten Prozeduren für die angegebene Sammlung erreicht. Wenden Sie sich an den Support, um dieses Kontingent zu erhöhen. |
409 | Konflikt: Dies bedeutet, dass ein StoredProcedureProperties mit einer ID übereinstimmt, die der von Ihnen angegebenen ID entspricht, bereits vorhanden ist. |
413 | RequestEntityTooLarge: Dies bedeutet, dass der Textkörper des StoredProcedureProperties zu erstellenden zu groß war. |
Beispiele
Dadurch wird eine gespeicherte Prozedur erstellt und ausgeführt, die eine Zeichenfolge an das erste Element anhängt, das von der Abfrage zurückgegeben wird.
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."");
}";
CosmosScripts scripts = this.container.Scripts;
StoredProcedureProperties storedProcedure = new StoredProcedureProperties(id, sprocBody);
Response<StoredProcedureProperties> 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");
Gilt für:
Azure SDK for .NET