次の方法で共有


GraphQL API のストアド プロシージャ

ストアド プロシージャは、Data API Builder (DAB) で GraphQL 操作として公開できます。 この方法は、単純なテーブルまたはビューで処理されないカスタム ロジック、フィルター処理、検証、または計算結果を含むシナリオに役立ちます。

コンフィギュレーション

ストアド プロシージャを公開するには:

  • source.type"stored-procedure"に設定する
  • source.objectを完全修飾プロシージャ名に設定する
  • 省略可能な parameters を必要に応じて既定値で定義します
  • graphql.operation"query"または"mutation"に設定するか、省略して既定値に設定します"mutation"
  • "execute" アクションを使用してアクセス許可を付与する

CLI の例

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"

構成の例

"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

DAB 2.0 では、 parameters のディクショナリ形式 ( { "searchType": "default-value" } など) は非推奨です。 前の例に示した配列形式を使用します。 旧形式は、下位互換性のために引き続き受け入れられます。

ヒント

パラメーター配列形式の詳細については、 ソース構成を参照してください。

GraphQL の動作

  • graphql.operation"query"または"mutation"である必要があります。
  • フィールドは、自動的に executeで接頭辞が付けられます。例えば、executeGetCowrittenBooksByAuthor
  • パラメーターは GraphQL 引数として渡されます

クエリの例

query {
  executeGetCowrittenBooksByAuthor(author: "asimov") {
    id
    title
  }
}

カスタム MCP ツール

DAB 2.0 以降では、ストアド プロシージャをカスタム モデル コンテキスト プロトコル (MCP) ツールとして公開できます。 ストアド プロシージャ エンティティに "custom-tool": true を設定すると、DAB は MCP tools/list および tools/call エンドポイントに名前付きツールとしてプロシージャを動的に登録します。 AI エージェントは、プロシージャシグネチャと一致するパラメーターを使用して、ツールを名前で直接検出して呼び出すことができます。

"GetBookById": {
  "source": {
    "type": "stored-procedure",
    "object": "dbo.get_book_by_id"
  },
  "mcp": {
    "custom-tool": true
  },
  "permissions": [
    {
      "role": "anonymous",
      "actions": [ "execute" ]
    }
  ]
}

CLI に相当するもの:

dab add GetBookById \
  --source dbo.get_book_by_id \
  --source.type "stored-procedure" \
  --permissions "anonymous:execute" \
  --mcp.custom-tool true

このセクションで説明する SQL MCP Server 2.0 の機能は現在プレビュー段階であり、一般公開前に変更される可能性があります。 詳細については、「 バージョン 2.0 の新機能」を参照してください。

制限事項

  • 最初の 結果セット のみが返されます
  • 改ページ、フィルター処理、および順序付けはサポートされていません
  • リレーションシップはサポートされていません
  • のメタデータが必要です sys.dm_exec_describe_first_result_set
  • キーで 1 つの項目を返すことはできません
  • パラメーター レベルの認証なし