Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gespeicherte Prozeduren können als GraphQL-Vorgänge im Daten-API-Generator (DAB) verfügbar gemacht werden. Dieser Ansatz ist nützlich für Szenarien, die benutzerdefinierte Logik, Filterung, Überprüfung oder berechnete Ergebnisse umfassen, die nicht von einfachen Tabellen oder Ansichten behandelt werden.
Konfiguration
So machen Sie eine gespeicherte Prozedur verfügbar:
- Legen Sie
source.typeauf"stored-procedure"fest. - Setzen Sie
source.objectauf den vollqualifizierten Prozedurnamen - Optionale
parametersmit ihren Standardwerten definieren, falls erforderlich. - Setzen Sie
graphql.operationauf"query"oder"mutation", oder lassen Sie es weg, um standardmäßig"mutation"zu verwenden. - Erteilen von Berechtigungen mithilfe der
"execute"Aktion
CLI-Beispiel
dab add GetCowrittenBooksByAuthor \
--source dbo.stp_get_all_cowritten_books_by_author \
--source.type "stored-procedure" \
--parameters.name "searchType" \
--parameters.required "false" \
--parameters.default "default-value" \
--parameters.description "The type of search to perform" \
--permissions "anonymous:execute" \
--graphql.operation "query"
Konfigurationsbeispiel
"GetCowrittenBooksByAuthor": {
"source": {
"type": "stored-procedure",
"object": "dbo.stp_get_all_cowritten_books_by_author",
"parameters": [
{
"name": "searchType",
"required": false,
"default": "default-value",
"description": "The type of search to perform"
}
]
},
"graphql": {
"operation": "query"
},
"permissions": [
{
"role": "anonymous",
"actions": [ "execute" ]
}
]
}
Warnung
Das Wörterbuchformat für parameters (z. B. { "searchType": "default-value" }) ist in DAB 2.0 veraltet. Verwenden Sie das im vorherigen Beispiel gezeigte Arrayformat. Das alte Format wird weiterhin aus Gründen der Abwärtskompatibilität akzeptiert.
Tipp
Weitere Informationen zum Parameterarrayformat finden Sie in der Quellkonfiguration.
GraphQL-Verhalten
-
graphql.operationmuss"query"oder"mutation"sein - Felder sind automatisch mit
executeversehen, z. B.executeGetCowrittenBooksByAuthor. - Parameter werden als GraphQL-Argumente übergeben.
Beispielabfrage
query {
executeGetCowrittenBooksByAuthor(author: "asimov") {
id
title
}
}
Benutzerdefinierte MCP-Tools
Ab DAB 2.0 können gespeicherte Prozeduren als benutzerdefinierte MCP-Tools (Model Context Protocol) verfügbar gemacht werden. Wenn Sie "custom-tool": true auf einer gespeicherten Prozedur-Entität festlegen, registriert DAB die Prozedur dynamisch als benanntes Tool in den MCP tools/list- und tools/call-Endpunkten. KI-Agents können das Tool direkt anhand des Namens ermitteln und aufrufen, wobei Parameter mit der Prozedursignatur übereinstimmen.
"GetBookById": {
"source": {
"type": "stored-procedure",
"object": "dbo.get_book_by_id"
},
"mcp": {
"custom-tool": true
},
"permissions": [
{
"role": "anonymous",
"actions": [ "execute" ]
}
]
}
CLI-Entsprechung:
dab add GetBookById \
--source dbo.get_book_by_id \
--source.type "stored-procedure" \
--permissions "anonymous:execute" \
--mcp.custom-tool true
Hinweis
Die in diesem Abschnitt beschriebene SQL MCP Server 2.0-Funktionalität befindet sich derzeit in der Vorschau und kann sich vor der allgemeinen Verfügbarkeit ändern. Weitere Informationen finden Sie unter Neuigkeiten in Version 2.0.
Einschränkungen
- Es wird nur die erste Ergebnismenge zurückgegeben.
- Paginierung, Filterung und Sortierung werden nicht unterstützt.
- Beziehungen werden nicht unterstützt
- Erfordert Metadaten von
sys.dm_exec_describe_first_result_set - Ein einzelnes Element kann nicht nach Schlüssel zurückgegeben werden.
- Keine Autorisierung auf Parameterebene