Freigeben über


Verwenden von Anweisungsparametern

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Ein Parameter ist eine Variable in einer SQL-Anweisung, die eine ODBC-Anwendung aktivieren kann:

  • Werte für Spalten in einer Tabelle effizient bereitstellen

  • Benutzerinteraktion beim Aufstellen von Abfragekriterien verbessern

  • Verwalten Von Text-, ntext- und Bilddaten und SQL Server-spezifischen C-Datentypen.

Beispielsweise enthält eine Parts-Tabelle Spalten mit dem Namen PartID, Description und Price. Zum Hinzufügen eines Webparts ohne Parameter müssen Sie eine SQL-Anweisung erstellen, z. B.:

INSERT INTO Parts (PartID, Description, Price) VALUES (2100, 'Drive shaft', 50.00)  

Diese Anweisung ist zwar zum Einfügen einer Zeile in eine bekannte Menge von Werten akzeptabel, sie ist jedoch umständlich, wenn die Anwendung mehrere Zeilen einfügen muss. ODBC behebt dies, indem eine Anwendung einen beliebigen Datenwert in einer SQL-Anweisung durch eine Parametermarkierung ersetzen kann. Diese wird durch ein Fragezeichen (?) angegeben. Im folgenden Beispiel werden drei Datenwerte durch Parametermarkierungen ersetzt:

INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)  

Die Parametermarkierungen werden dann an Anwendungsvariablen gebunden. Um eine neue Zeile einzufügen, muss die Anwendung nur die Werte der Variablen festlegen und die Anweisung ausführen. Der Treiber ruft dann die aktuellen Werte der Variablen ab und sendet sie an die Datenquelle. Wenn die Anweisung mehrfach ausgeführt wird, kann die Anwendung den Prozess durch Vorbereiten der Anweisung noch effizienter gestalten.

Auf jede Parametermarkierung wird durch die entsprechende Ordnungszahl, die den Parametern von links nach rechts zugewiesen wurde, verwiesen. Die äußerst linke Parametermarkierung in einer SQL-Anweisung weist einen Ordnungswert von 1 auf; die nächste ist Ordnungszahl 2 usw.

In diesem Abschnitt

Weitere Informationen

Ausführen von Abfragen (ODBC)