Parameterfrågor (Visual Database Tools)

gäller för:SQL Server

I vissa fall vill du skapa en fråga som du kan använda många gånger, men med ett annat värde varje gång. Du kan till exempel ofta köra en fråga för att hitta alla title_ids som skrivits av en författare. Du kan köra samma fråga för varje begäran, förutom att författarens ID eller namn skulle vara olika varje gång.

Om du vill skapa en fråga som kan ha olika värden vid olika tidpunkter använder du parametrar i frågan. En parameter är en platshållare för ett värde som anges när frågan körs. En SQL-instruktion med en parameter kan se ut så här, där "?" representerar parametern för författarens ID:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

När du ska använda parametrar

Du kan använda parametrar som platshållare för literalvärden – för antingen text- eller numeriska värden. Oftast används parametrar som platshållare i sökvillkor för enskilda rader eller för grupper (det vill säga, i WHERE- eller HAVING-satserna i en SQL-instruktion).

Du kan använda parametrar som platshållare i uttryck. Du kanske till exempel vill beräkna rabatterade priser genom att ange ett annat rabattvärde varje gång du kör en fråga. För att göra det kan du ange följande uttryck:

(price * ?)

Ange namnlösa och namngivna parametrar

Du kan ange två typer av parametrar: namnlösa och namngivna. En namnlös parameter är ett frågetecken (?) som du placerar någonstans i frågan som du vill fråga efter eller ersätta ett literalvärde. Om du till exempel använder en namnlös parameter för att söka efter en författares ID i tabellen titleauthor kan den resulterande instruktionen i SQL-fönstret se ut så här:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

När du kör frågan i verktygen Fråga och Visa designer visas dialogrutan Frågeparametrar med "?" som namnet på parametern.

Du kan också tilldela ett namn till en parameter. Namngivna parametrar är särskilt användbara om du har flera parametrar i en fråga. Om du till exempel använder namngivna parametrar för att söka efter en författares för- och efternamn i tabellen authors kan den resulterande instruktionen i SQL-fönstret se ut så här:

SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
      au_lname = %last name%

Tips

Du måste definiera prefix- och suffixtecken innan du skapar en namngiven parameterfråga.

När du kör frågan i fråge- och vydesignern visas dialogrutan Frågeparametrar med en lista med namngivna parametrar.