Q1.ある小売企業では、Microsoft Fabric 上に SQL データベースを構築しており、その中に製品カタログを保持する dbo.Products テーブルがあります。
この dbo.Products には各製品のカタログ データが格納されています。
ハイブリッド検索を実行するストアド プロシージャを新たに用意する必要があります。
このソリューションは次の要件を満たす必要があります。
近似最近傍 (ANN) を使用して上位 20 件の候補製品を取得します。
フルテキスト クエリにも合致する候補だけを再ランク付けします。
クエリの埋め込みを生成します。
Transact-SQL のコードをどのように完成させればよいですか。
解答を見る
クエリ文字列から埋め込みベクトルを作る最初の空欄には AI_GENERATE_EMBEDDINGS が入ります。
近似最近傍で上位 20 件を取得する表値関数は VECTOR_SEARCH であり、TABLE・COLUMN・SIMILAR_TO・TOP_N・METRIC の指定と一致します。
最後は、フルテキスト条件に合致した行だけを RANK 付きで結合するため CONTAINSTABLE を使用します。
SEMANTIC 系や VECTOR_DISTANCE、FREETEXTTABLE はいずれもこの構文要件には合致しません。
VECTOR_SEARCH (Transact-SQL) (プレビュー)
Q2.sales-sql01 という論理サーバー上で稼働する SalesDB という Azure SQL データベースがあります。
OrderApi という Azure App Service Web アプリが存在し、現在は SQL 認証を使って SalesDB へ接続しています。
この OrderApi に対して OrderApi-Id という名前のユーザー割り当てマネージド ID を有効化します。
SalesDB への接続を Microsoft Entra 認証を用いる方式へ OrderApi を構成する必要があります。
マネージド ID には SalesDB に対する読み取りおよび書き込みのアクセス許可が求められます。
SalesDB 上でどの Transact-SQL ステートメントを実行する必要がありますか。
解答を見る
Microsoft Entra 認証で Azure SQL Database に接続するマネージド ID は、対象データベース内で CREATE USER FROM EXTERNAL PROVIDER を実行してユーザーとして作成します。
必要な権限は読み取りと書き込みのため、db_datareader と db_datawriter ロールに追加します。
CREATE LOGIN は論理サーバー側のログイン作成であり、SalesDB 内での権限付与という要件には適しません。
パスワード指定や sysadmin 付与を含む選択肢も要件を満たしません。
マネージド ID を使用して .NET アプリを Azure SQL Database に安全に接続する – Azure App Service | Microsoft Learn
Q3.app1-contoso-001 という Azure コンテナー アプリがあり、Azure SQL データベースの手前で Data API builder (DAB) コンテナーを稼働させています。
dbo.todos というソースを参照する Todo という名前のエンティティを追加します。
クライアントが Todo の REST エンドポイントへアクセスする際、どの URL パターンを使用する必要がありますか。
解答を見る
Data API builder では、各データベース オブジェクトを構成ファイル上のエンティティとして公開し、REST エンドポイントの既定パスは /api/{entity} です。
今回のエンティティ名は Todo で、カスタムの REST パスも指定されていないため、クライアントは /api/Todo へアクセスします。
/graphql は GraphQL 用のパスであり、/data-api は DAB 既定の REST パスではありません。
したがって B が正解です。
REST エンドポイントを呼び出す方法 – Data API builder
Q4.db1 という名前のデータベースがあります。
そのスキーマは、SDK スタイルの SQL データベース プロジェクトとして Git リポジトリで管理されています。
このリポジトリには、次の GitHub Actions ワークフローが含まれています。
次の各ステートメントについて、内容が正しい場合は [はい] を、そうでない場合は [いいえ] を選択してください。

| 問題文 | はい | いいえ | |
|---|---|---|---|
| main ブランチへ変更がプッシュされるたびに、単体テストが自動的に実行されます。 | |||
| スキーマの検証は Build ステップ中に行われます。 | |||
| スキーマの検証は Deploy ステップ中に行われます。 |
解答を見る
unit-tests ジョブには github.ref == ‘refs/heads/main’ という条件があるため、main への push 時に build-and-deploy の後で実行されます。
SQL データベース プロジェクトのビルドは、オブジェクト間の関係や対象プラットフォームの構文を検証して .dacpac を生成します。
一方 Deploy ステップは SqlPackage Publish により成果物を配置する処理であり、スキーマ検証は Build ステップで行われると判断できます。
したがって 1 番目と 2 番目は「はい」、3 番目は「いいえ」です。
SQL プロジェクトを作成して配置する – SQL Server | Microsoft Learn
Q5.DB1 という名前のデータベースがあります。
そのスキーマは SDK スタイルの SQL データベース プロジェクトとして Git リポジトリに保存されています。
すでに dotnet build を実行してデータベース成果物を生成する GitHub Actions ワークフローが用意されています。
GitHub リポジトリ シークレットに格納したシークレットを利用して、.dacpac ファイルを Azure SQL データベースへ発行するデプロイ手順を追加する必要があります。
このワークフローに何を含める必要がありますか。
解答を見る
.dacpac を Azure SQL Database へ発行するには、GitHub Actions の azure/sql-action@v2 を用い、with に path と connection-string を指定します。
発行処理のため action は extract ではなく publish を指定します。
接続情報は設問どおり GitHub リポジトリ シークレットから参照するため、secrets.SQL_CONNECTION_STRING を使う C が適切です。
A は env に接続文字列を直書きし、D はビルドであって発行ではないため不適切です。
SQL Projects Automation – SQL Server | Microsoft Learn
Q6.Git リポジトリに格納された SDK スタイルの SQL データベース プロジェクトがあります。
このプロジェクトは Azure SQL データベースを対象としています。
プロジェクトがシステム オブジェクトを参照すると、CI ビルドが未解決の参照エラーで失敗します。
Azure SQL Database の正しいシステム オブジェクトをデータベース モデルへ含め、dotnet build が正常に検証されるように SQL データベース プロジェクトを更新する必要があります。
ソリューション: Azure SQL Database の master.dacpac ファイルへの成果物参照を追加します。
これは目標を満たしますか。
解答を見る
SDK スタイルの SQL プロジェクトで Azure SQL Database のシステム オブジェクトを安定的に解決するには、通常 Microsoft.SqlServer.Dacpacs.Azure.Master を PackageReference として追加します。
成果物参照はビルド エージェント上に存在する ローカルの master.dacpac に依存し、CI 環境で同じパスに無ければ dotnet build の検証に失敗するおそれがあります。
そのため、このソリューションだけでは目標を満たしません。
よって答えは「いいえ」です。
SQL プロジェクトのシステム オブジェクト – SQL Server | Microsoft Learn
Q7.ProductsDB という名前の Azure SQL データベースがあります。
mcr.microsoft.com/azure-databases/data-api-builder:latest イメージを使用して、Data API builder (DAB) を Azure Container Apps へデプロイします。
コンテナー アプリには次の構成があります。
シークレット: mssql-connection-string、dab-config-base64。
環境変数: MSSQL_CONNECTION_STRING=secretref:mssql-connection-string、DAB_CONFIG_BASE64=secretref:dab-config-base64。
イングレス: ポート 5000 で外部公開。
利用者からは、/health エンドポイントは正常な応答を返すものの、Products という名前のエンティティへのクエリ要求はすべて失敗し、接続エラーが発生すると報告されています。
接続文字列内の SQL ログインが正しく、データベースが存在することは確認済みです。
コンテナー アプリのデプロイ設定や DAB 構成ファイルを変更せずに、コンテナー アプリが Azure SQL 論理サーバーへの接続を確立できるようにする必要があります。
Azure SQL 論理サーバーで何を行う必要がありますか。
解答を見る
/health が正常でもエンティティ照会だけが接続エラーになる場合は、DAB コンテナーから Azure SQL へのネットワーク到達性を確認します。
Azure 内のアプリを Azure SQL Database へ接続させるには、論理サーバーで 0.0.0.0 から 0.0.0.0 のファイアウォール規則を作成し、Azure サービスからの接続を許可します。
これは コンテナー設定や DAB 構成を変更しない対応です。
自動フェールオーバー、DBCC、自動チューニングは接続許可の問題を解決しません。
IP ファイアウォール規則 – Azure SQL Database and Azure Synapse Analytics | Microsoft Learn
Q8.Sales.Orders という名前のテーブルを含む Azure SQL データベースがあります。
Sales.Orders には注文の各列が含まれています。
レポート クエリでは、注文が行われてからの経過日数を計算するロジックが頻繁に繰り返されています。
@OrderDate の入力値と現在の日付および時刻との間の日数を返す、スカラー ユーザー定義関数 (UDF) を作成する必要があります。
Transact-SQL コードをどのように完成させるべきですか。
回答するには、適切な値を正しいターゲットへドラッグしてください。
各値は 1 回、複数回、またはまったく使用しない場合があります。
| 列 | データ型 |
|---|---|
| OrderId | int |
| CustomerId | int |
| OrderDate | datetime2 |
| TotalAmount | decimal(18,2) |
選択肢を要件のドロップ欄へドラッグ、またはタップして配置。配置済みの欄をクリックで戻せます(同じ選択肢は複数回使用可)。
DATEADD(day, @OrderDate, GETDATE())
DATEDIFF(day, @OrderDate, GETDATE())
RETURNS INT
RETURNS TABLE
WITH SCHEMABINDING
解答を見る
スカラー UDF は単一の値を返すため、関数宣言では RETURNS INT を指定します。
注文日から現在日時までの日数を求めるには、日付を加算する DATEADD ではなく、差分を返す DATEDIFF(day, @OrderDate, GETDATE()) が適切です。
DATEDIFF の戻り値は int なので、DECLARE した @Days に代入して RETURN する構成に合致します。
RETURNS TABLE はテーブル値関数用であり、この設問では使用しません。
DATEDIFF (Transact-SQL) – SQL Server
Q9.SQL と大規模言語モデル (LLM) を統合する際に用いられる、一般的なパターンはどれですか。
解答を見る
SQL のデータを LLM と統合する一般的な方法は、データベースなどから関連情報を取得し、その結果をプロンプトに含めて回答を生成する RAG パイプライン(検索拡張生成)です。
LLM が直接 SQL を実行する構成は、安全性や制御の観点から一般的ではありません。
RAG では検索・取得した根拠データを用いるため、回答の正確性と最新性を高められます。
手動の CSV エクスポートやバックアップ復元は、LLM 統合のパターンではありません。
RAG および生成 AI – Azure AI Search | Microsoft Learn
Q10.dbo.ToDo という名前のテーブルを含む ToDo という Azure SQL データベースがあります。
ある企業では、dbo.ToDo の行が変更されるたびに実行される Azure Functions アプリを開発する予定です。
このアプリは、Azure SQL トリガー バインドを使用して INSERT、UPDATE、DELETE の各イベントを処理します。
計画しているアプリをサポートするように ToDo を構成する必要があります。
何を行う必要がありますか。
解答を見る
Azure Functions の Azure SQL トリガーは、テーブルの INSERT・UPDATE・DELETE を監視するために SQL 変更追跡 を利用します。
そのため、対象データベースの ToDo と対象テーブルの dbo.ToDo の両方で変更追跡を有効にする必要があります。
CDC や DML/DDL トリガーから HTTP エンドポイントを呼び出す方式は、Azure SQL トリガー バインドの前提構成ではありません。
試験では Azure SQL トリガーは変更追跡を用いると押さえておくことが重要です。
Functions の Azure SQL トリガー
