私はかなりの数の一時テーブルを利用stored procedure
しSQL Server 2008
ています(別のコードをリファクタリングしていて、これらをスカラーに移動しようとしていますが、それはより長いプロセスです)。ストアド プロシージャの開始時に、すべての一時テーブルを宣言し、それらをループ処理して、存在する一時テーブルを削除します。
他のプログラミング言語 ( など) を使用すると、変数を作成してループするpython
ことができます。for loop
でこれを行うことができますSQL Server
か? WHILE
使用する正しい関数のように思えますが、私が見たすべての例では、 などの増分値を使用していますSET @intFlag = @intFlag + 1
。私はインクリメントしようとしているのではなく、値を取得して一時テーブルが存在するかどうかを確認します-存在する場合は削除します。そうでない場合は、次の値。
これが私が想像したものですが、次に何をすべきか、プログラムでテーブルを削除することさえ可能かどうかはわかりません:
DECLARE @Tables table (tablename varchar(50));
INSERT INTO @Tables VALUES
('#a'),
('#b'),
('#c'),
('#d');
-- this part is how I would write the code in python --
for i in @Tables:
IF OBJECT_ID('tempdb..+ i ') IS NOT NULL
DROP TABLE i
私の中でこれを達成する方法はありstored procedure
ますか?