ストアド プロシージャを使用して、複数のノードを持つ XML プロジェクト ファイルからデータを抽出するために、XML クロス適用を適用しています。
ストアドプロシージャは次のとおりです
INSERT INTO UCDetails
SELECT
Usecase.value('@UserID','VARCHAR(100)') AS UCId, --ATTRIBUTE
Usecase.value('@Name','VARCHAR(100)') AS UCName, --ATTRIBUTE
Usecase.value('@PmAuthor','VARCHAR(100)') AS UCActor, --ATTRIBUTE
UCPrecon.value('@Value','VARCHAR(MAX)') AS UCPre, --ATTRIBUTE
UCPostcon.value('@Value','VARCHAR(MAX)') AS UCPost, --ATTRIBUTE
FROM
@xml.nodes('/Project/Models/UseCase')AS TAB(Usecase) OUTER
apply @xml.nodes('/Project/Models/UseCase/TaggedValues/TaggedValueContainer/ModelChildren/TaggedValue[5] ')AS TAB1(UCPrecon)OUTER
apply @xml.nodes('/Project/Models/UseCase/TaggedValues/TaggedValueContainer/ModelChildren/TaggedValue[6]')AS TAB2(UCPostcon)
END
以下に示すように、単一行のデータのみを取得する代わりに、クロス乗算行を取得しています
UCId UCName UCActor UCPre UCPost UC01 ログイン Bilal Haider ユーザーは登録する必要があります ユーザーは正常にログインされました UC01 Login Bilal Haider User must be Registered User is added UC01 Login Bilal Haider ユーザーは正常にログインされました ユーザーは正常にログインされました UC01 ログイン Bilal Haider ユーザーが正常にログインされました ユーザーが追加されました UC02 ユーザーの追加 Bilal Haider ユーザーは登録する必要があります ユーザーは正常にログインされました UC02 Add User Bilal Haider User must be Registered User is added UC02 ユーザーの追加 Bilal Haider ユーザーが正常にログインされました ユーザーが正常にログインされました UC02 ユーザーの追加 Bilal Haider ユーザーが正常にログインされました ユーザーが追加されました
このような結果を投稿して申し訳ありません正しい行は太字で強調表示されていますが、他のすべての行を取得しているのはなぜですか?
XML ファイル リンク: XML ファイル