Scripts.CreateStoredProcedureAsync Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un procedimiento almacenado como una operación asincrónica en el servicio 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)
Parámetros
- storedProcedureProperties
- StoredProcedureProperties
Procedimiento almacenado que se va a crear.
- requestOptions
- RequestOptions
(Opcional) Opciones de la solicitud de procedimiento almacenado.
- cancellationToken
- CancellationToken
(Opcional) CancellationToken que representa la cancelación de la solicitud.
Devoluciones
objeto StoredProcedureProperties que se creó dentro de un Task objeto que representa la respuesta del servicio para la operación asincrónica.
Excepciones
Si storedProcedureProperties
no se establece.
Representa una consolidación de errores que se produjeron durante el procesamiento asincrónico. Busque en InnerExceptions para buscar las excepciones reales.
Esta excepción puede encapsular muchos tipos diferentes de errores. Para determinar el error específico, examine siempre la propiedad StatusCode. Algunos códigos comunes que puede obtener al crear un documento son:
StatusCode | Motivo de la excepción |
---|---|
400 | BadRequest: esto significa que algo estaba mal con la solicitud proporcionada. Es probable que no se haya proporcionado un identificador para el procedimiento almacenado o que el cuerpo tenga un formato incorrecto. |
403 | Prohibido: ha alcanzado la cuota de procedimientos almacenados para la colección proporcionada. Póngase en contacto con el soporte técnico para aumentar esta cuota. |
409 | Conflicto: significa que StoredProcedureProperties un con un identificador que coincide con el identificador que proporcionó ya existía. |
413 | RequestEntityTooLarge: esto significa que el cuerpo del StoredProcedureProperties objeto que intentó crear era demasiado grande. |
Ejemplos
Esto crea y ejecuta un procedimiento almacenado que anexa una cadena al primer elemento devuelto de la consulta.
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");
Se aplica a
Azure SDK for .NET
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de