;WITH RatingLines ...
で SP を開始します。 最初の UPDATE
に接続します ステートメントであり、他のステートメントではありません。このコンストラクトは、それに続く最初のステートメントにのみ表示される CTE を作成します。詳細については、WITH common_table_expression (Transact-SQL)<の TN を参照してください。 /a> .特に、Remarks からの抜粋は次の点を強調しています:
このテーブルを SP のすべてのステートメントで認識できるようにするには、RatingLines
のテーブル変数または一時テーブルを作成します。 代わりは。
一時テーブルを使用した概要は次のようになります:
Select RDA.[CTS] AS [CTS]
,RDA.[B_KEY] AS [B_KEY]
,RDA.[H_KEY] AS [H_KEY]
,RDA.[RT_ID] AS [RT_ID]
,RDA.[RT_AVGRATING] AS [RT_AVGRATING]
,RDDA.[RTD_COMMENT] AS [RTD_COMMENT]
INTO #RatingLines -- Create #RatingLines as temporary table
From [DynNavHRS].[HRSDB].[HTL_RATING_ALL_DA] RDA
Join [DynNavHRS].[HRSDB].[HTL_RATING_DETAIL_ALL_DA] RDDA
ON RDA.RT_ID =RDDA.RT_ID
AND RDDA.[RTD_COMMENT] <> ''
AND RDA.[B_KEY]='19214642';
-- Throughout the rest of the SP, use #RatingLines as your ratings table; eg:
...
INNER JOIN #RatingLines RL1
...
-- At the end of the SP, drop the temporary table
DROP TABLE #RatingLines;