SQL 2005の条件の結果に基づいて一時テーブルにデータを入力しようとしています。一時テーブルはどちらの方法でも同じ構造になりますが、条件に応じて異なるクエリを使用してデータが入力されます。以下の簡略化されたサンプルスクリプトは、ELSE
ブロックの構文チェックに失敗し、次INSERT INTO
のエラーが発生します。
データベースにはすでに「#MyTestTable」という名前のオブジェクトがあります。
DECLARE @Id int
SET @Id = 1
IF OBJECT_ID('tempdb..#MyTestTable') IS NOT NULL DROP TABLE #MyTestTable
IF (@Id = 2) BEGIN
SELECT 'ABC' AS Letters
INTO #MyTestTable;
END ELSE BEGIN
SELECT 'XYZ' AS Letters
INTO #MyTestTable;
END
IF/ELSE
ステートメントの前に一時テーブルを作成してからINSERT SELECT
、条件付きブロックでステートメントを実行することもできますが、テーブルには多くの列が含まれるため、効率的にしようとしていました。それが唯一の選択肢ですか?または、これを機能させる方法はありますか?
ありがとう、マット