0

私は動的 SQL をいじってこれを達成しようとしましたが、それはちょっと可能ですが、最もスムーズな方法ではありません。

そこで、ランダムな名前の一時テーブル (##show101、##show24、##show576) を作成する方法があるかどうか疑問に思っていました。

私が達成しようとしているのは、さまざまなテーブルから特定のデータを含む一時テーブルが作成されることです。次に、一時テーブルのデータを操作して出力します。

SQL Server 2008 を使用しています。

4

1 に答える 1

1

あなたの例は、グローバル一時テーブルを使用しています。これらは削除されるまでそのまま残り、異なる接続間で共有できます。それが彼らが「グローバル」である理由です。あなたの場合、それらは動的ステートメントの実行と外部ステートメントの間で共有することができます。

次のようなコードをお勧めします。

create table #MyTempTable . . . <as whatever>

declare @sql nvarchar(max) = '
    select <whatver>
    into #temp1

    . . .

    do some more work on #temp1 if you like

    --Finally
    select * from temp1
   ';

insert into #MyTempTable
    exec(@sql);

これにより、データが動的スコープから外部スコープに「移動」され、他の目的に使用できるようになります。これで、#MyTempTableでアクセスできます。

于 2013-02-11T16:51:51.117 に答える