Microsoft DP-800 (SQL AI Developer Associate)1-10

表示モード
画像位置
文字位置
理解度の自動記録
STATUS FILTER

表示する理解度を選択

読み込み中...
Q1DP-800
クエリ文字列から埋め込みベクトルを生成する関数(DECLARE @qv VECTOR(1536) = ___ の空欄)

近似最近傍で上位候補を取得する表値関数(FROM ___ の空欄)

フルテキスト条件に一致した行を RANK 付きで結合する関数(JOIN ___ の空欄)

解答を見る
正解:AI_GENERATE_EMBEDDINGS/VECTOR_SEARCH/CONTAINSTABLE

クエリ文字列から埋め込みベクトルを作る最初の空欄には AI_GENERATE_EMBEDDINGS が入ります。
近似最近傍で上位 20 件を取得する表値関数は VECTOR_SEARCH であり、TABLE・COLUMN・SIMILAR_TO・TOP_N・METRIC の指定と一致します。
最後は、フルテキスト条件に合致した行だけを RANK 付きで結合するため CONTAINSTABLE を使用します。
SEMANTIC 系や VECTOR_DISTANCE、FREETEXTTABLE はいずれもこの構文要件には合致しません。
VECTOR_SEARCH (Transact-SQL) (プレビュー)

Q2DP-800
解答を見る
正解:C. CREATE USER [OrderApi-Id] FROM EXTERNAL PROVIDER; ALTER ROLE db_datareader ADD MEMBER [OrderApi-Id]; ALTER ROLE db_datawriter ADD MEMBER [OrderApi-Id];

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

Q3DP-800
解答を見る
正解:B. https://app1-contoso-001.azurestaticapps.net/api/Todo

Data API builder では、各データベース オブジェクトを構成ファイル上のエンティティとして公開し、REST エンドポイントの既定パスは /api/{entity} です。
今回のエンティティ名は Todo で、カスタムの REST パスも指定されていないため、クライアントは /api/Todo へアクセスします。
/graphql は GraphQL 用のパスであり、/data-api は DAB 既定の REST パスではありません。
したがって B が正解です。
REST エンドポイントを呼び出す方法 – Data API builder

Q4DP-800
問題文 はい いいえ
main ブランチへ変更がプッシュされるたびに、単体テストが自動的に実行されます。
スキーマの検証は Build ステップ中に行われます。
スキーマの検証は Deploy ステップ中に行われます。
解答を見る
正解:1問目「はい」/2問目「はい」/3問目「いいえ」

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

Q5DP-800
解答を見る
正解:C. – name: Publish uses: azure/sql-action@v2 with: action: publish path: bin/Debug/db1.dacpac connection-string: ${{ secrets.SQL_CONNECTION_STRING }}

.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

Q6DP-800
解答を見る
正解:B. いいえ

SDK スタイルの SQL プロジェクトで Azure SQL Database のシステム オブジェクトを安定的に解決するには、通常 Microsoft.SqlServer.Dacpacs.Azure.MasterPackageReference として追加します。
成果物参照はビルド エージェント上に存在する ローカルの master.dacpac に依存し、CI 環境で同じパスに無ければ dotnet build の検証に失敗するおそれがあります。
そのため、このソリューションだけでは目標を満たしません。
よって答えは「いいえ」です。
SQL プロジェクトのシステム オブジェクト – SQL Server | Microsoft Learn

Q7DP-800
解答を見る
正解:C. 開始 IP アドレスと終了 IP アドレスとして 0.0.0.0 を許可するファイアウォール規則を作成する

/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

Q8DP-800
データ型
OrderId int
CustomerId int
OrderDate datetime2
TotalAmount decimal(18,2)

選択肢を要件のドロップ欄へドラッグ、またはタップして配置。配置済みの欄をクリックで戻せます(同じ選択肢は複数回使用可)。

AS RETURN
DATEADD(day, @OrderDate, GETDATE())
DATEDIFF(day, @OrderDate, GETDATE())
RETURNS INT
RETURNS TABLE
WITH SCHEMABINDING
関数の戻り値の宣言(パラメーター定義の直後、BEGIN の前の行)
@Days に代入する式(SELECT @Days = ___ の空欄)
解答を見る
正解:関数の戻り値の宣言(パラメーター定義の直後、BEGIN の前の行)→RETURNS INT/@Days に代入する式(SELECT @Days = ___ の空欄)→DATEDIFF(day, @OrderDate, GETDATE())

スカラー UDF は単一の値を返すため、関数宣言では RETURNS INT を指定します。
注文日から現在日時までの日数を求めるには、日付を加算する DATEADD ではなく、差分を返す DATEDIFF(day, @OrderDate, GETDATE()) が適切です。
DATEDIFF の戻り値は int なので、DECLARE した @Days に代入して RETURN する構成に合致します。
RETURNS TABLE はテーブル値関数用であり、この設問では使用しません。
DATEDIFF (Transact-SQL) – SQL Server

Q9DP-800
解答を見る
正解:B. RAG パイプライン

SQL のデータを LLM と統合する一般的な方法は、データベースなどから関連情報を取得し、その結果をプロンプトに含めて回答を生成する RAG パイプライン(検索拡張生成)です。
LLM が直接 SQL を実行する構成は、安全性や制御の観点から一般的ではありません。
RAG では検索・取得した根拠データを用いるため、回答の正確性と最新性を高められます。
手動の CSV エクスポートやバックアップ復元は、LLM 統合のパターンではありません。
RAG および生成 AI – Azure AI Search | Microsoft Learn

Q10DP-800
解答を見る
正解:A. ToDo および dbo.ToDo で変更追跡を有効にする

Azure Functions の Azure SQL トリガーは、テーブルの INSERT・UPDATE・DELETE を監視するために SQL 変更追跡 を利用します。
そのため、対象データベースの ToDo と対象テーブルの dbo.ToDo の両方で変更追跡を有効にする必要があります。
CDC や DML/DDL トリガーから HTTP エンドポイントを呼び出す方式は、Azure SQL トリガー バインドの前提構成ではありません。
試験では Azure SQL トリガーは変更追跡を用いると押さえておくことが重要です。
Functions の Azure SQL トリガー