Parametriserade frågor i Azure Cosmos DBParameterized queries in Azure Cosmos DB

GÄLLER för: SQL API

Azure Cosmos DB stöder frågor med parametrar som uttrycks av den välkända @-notationen.Azure Cosmos DB supports queries with parameters expressed by the familiar @ notation. Parametriserade SQL ger robust hantering och avvisning av indata från användaren, och förhindrar oavsiktlig exponering av data via SQL-inmatning.Parameterized SQL provides robust handling and escaping of user input, and prevents accidental exposure of data through SQL injection.

ExempelExamples

Du kan till exempel skriva en fråga som använder lastName och address.state som parametrar och köra den för olika värden för lastName och address.state baserat på användarindata.For example, you can write a query that takes lastName and address.state as parameters, and execute it for various values of lastName and address.state based on user input.

    SELECT *
    FROM Families f
    WHERE f.lastName = @lastName AND f.address.state = @addressState

Du kan sedan skicka denna begäran till Azure Cosmos DB som en parameter-JSON-fråga som följande:You can then send this request to Azure Cosmos DB as a parameterized JSON query like the following:

    {
        "query": "SELECT * FROM Families f WHERE f.lastName = @lastName AND f.address.state = @addressState",
        "parameters": [
            {"name": "@lastName", "value": "Wakefield"},
            {"name": "@addressState", "value": "NY"},
        ]
    }

I följande exempel anges det översta argumentet med en parametriserad fråga:The following example sets the TOP argument with a parameterized query:

    {
        "query": "SELECT TOP @n * FROM Families",
        "parameters": [
            {"name": "@n", "value": 10},
        ]
    }

Parameter värden kan vara valfri giltig JSON: strängar, siffror, booleska värden, null, jämna matriser eller kapslad JSON.Parameter values can be any valid JSON: strings, numbers, Booleans, null, even arrays or nested JSON. Eftersom Azure Cosmos DB är schema löst val IDE ras inte parametrar mot någon typ.Since Azure Cosmos DB is schemaless, parameters aren't validated against any type.

Här följer några exempel på parametriserade frågor i varje Azure Cosmos DB SDK:Here are examples for parameterized queries in each Azure Cosmos DB SDK:

Nästa stegNext steps