1. ホーム
  2. sql

[解決済み] SQLサーバーのtempテーブルの作成に#は必要ですか?

2023-02-26 05:13:14

質問

を使う必要があるのでしょうか? # を使用する必要がありますか?

例です。

SELECT column1, column2, someInt, someVarChar 
INTO ItemBack1 
FROM table2
WHERE table2.ID = 7

ItemBack1については # 記号を使用する必要がありますか?

もしそうでないなら、何のために # を使うのでしょうか?

どのように解決するには?

テーブル名の前に "#"(ハッシュ)を付けて、テンポラリテーブルを作成する必要があります。

もし、後でそのテーブルが必要でないなら、先にそれを作成してください。 テンポラリー・テーブルは、通常のテーブルとほとんど同じです。しかし、tempdbに作成されます。 例えば、他のユーザーがあなたが作成した一時テーブルにアクセスしようとしても、アクセスすることはできません。

(ダブルハッシュ) は、他のセッションからもアクセス可能な "Global" Temp テーブルを作成します。

一時テーブルの基本については、以下のリンクを参照してください。 http://www.codeproject.com/Articles/42553/Quick-Overview-Temporary-Tables-in-SQL-Server-2005

テーブルの内容が 5000 行以下であり、nvarchar(MAX) や varbinary(MAX) のようなデータ型を含まない場合、テーブル変数の使用を検討してください。

それらは RAM に格納される他の変数と同じであるため、最速です。 これらは RAM ではなく tempdb に格納されます。 .

DECLARE @ItemBack1 TABLE
(
 column1 int,
 column2 int,
 someInt int,
 someVarChar nvarchar(50)
);

INSERT INTO @ItemBack1
SELECT column1, 
       column2, 
       someInt, 
       someVarChar 
  FROM table2
 WHERE table2.ID = 7;

テーブル変数の詳細情報。 http://odetocode.com/articles/365.aspx