タグ付けされた質問 「temp-tables」

14
一時テーブルが存在するかどうかを確認し、存在する場合は一時テーブルを作成する前に削除します。
次のコードを使用して、一時テーブルが存在するかどうかを確認し、存在する場合はテーブルを削除してから再作成します。列を変更しない限り、問題なく動作します。後で列を追加すると、「列が無効です」というエラーが表示されます。私が間違っていることを教えてください。 IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, ) select company, stepid, fieldid from #Results --Works fine to this point IF OBJECT_ID('tempdb..#Results') IS NOT NULL DROP TABLE #Results CREATE TABLE #Results ( Company CHAR(3), StepId TINYINT, FieldId TINYINT, NewColumn …

6
個別のCREATE TABLEを使用せずにSELECTステートメントで一時テーブルを作成する
create tableステートメントを使用せずに各列タイプを指定せずに、selectステートメントから一時(セッションのみ)テーブルを作成することはできますか?派生テーブルでこれが可能であることは知っていますが、それらはスーパーテンポラリー(ステートメントのみ)であり、再利用したいと考えています。 create tableコマンドを作成して列リストとタイプリストを一致させる必要がない場合は、時間を節約できます。

12
SQL Serverの一時テーブルとテーブル変数の違いは何ですか?
SQL Server 2005では、次の2つの方法のいずれかで一時テーブルを作成できます。 declare @tmp table (Col1 int, Col2 int); または create table #tmp (Col1 int, Col2 int); これら2つの違いは何ですか?@tmpがtempdbをまだ使用しているかどうか、またはすべてがメモリ内で発生するかどうかについて、私は矛盾する意見を読みました。 どちらが優れているのか?

6
いつSQLサーバーでテーブル変数と一時テーブルを使用する必要がありますか?
テーブル変数の詳細を学習しています。一時テーブルは常にディスク上にあり、テーブル変数はメモリ内にあると言います。つまり、テーブル変数は一時テーブルよりも少ないIO操作を使用するため、テーブル変数のパフォーマンスは一時テーブルよりも優れています。 ただし、場合によっては、メモリに含めることができないテーブル変数のレコードが多すぎると、テーブル変数が一時テーブルと同様にディスクに配置されます。 しかし、「多すぎるレコード」が何であるかはわかりません。100,000レコード?または1000,000レコード?使用しているテーブル変数がメモリ内にあるかディスク上にあるかをどのようにして知ることができますか?SQL Server 2005には、テーブル変数のスケールを測定したり、テーブル変数がメモリからディスクに配置されたときに通知する関数やツールはありますか?

12
一時テーブルへのデータの挿入
一時テーブルを作成し、そのようにデータ型を宣言した後。 CREATE TABLE #TempTable( ID int, Date datetime, Name char(20)) 次に、データベース内の物理テーブルに既に保持されている関連データをどのように挿入しますか?


11
SQL Server:2つのテーブルに同時に挿入することは可能ですか?
私のデータベースにはObject_Table、Data_Tableおよびという3つのテーブルが含まれていますLink_Table。リンクテーブルには、オブジェクトレコードのIDとデータレコードのIDの2つの列が含まれています。 私はからデータをコピーするDATA_TABLEことは、1つの与えられたオブジェクトIDにとにレコードを挿入し、対応するリンクされている場所Data_TableとLink_Table異なる特定のオブジェクト識別のために。 これを行うには、テーブル変数を選択し、反復ごとに2つの挿入を実行してループします。 これはそれを行うための最良の方法ですか? 編集:私は2つの理由でループを回避したいと思います。1つ目は怠惰で、ループ/一時テーブルにはより多くのコードが必要であること、より多くのコードはミスをする場所が多くなることを意味します。2つ目はパフォーマンスに関する懸念です。 すべてのデータを1回の挿入でコピーできますが、リンクテーブルを取得して、各レコードに新しいIDがある新しいデータレコードにリンクするにはどうすればよいですか?


23
MySQLで配列変数をシミュレートするにはどうすればよいですか?
表示されたMySQLは、配列変数を持っていないこと。代わりに何を使用すればよいですか? 提案されている2つの選択肢があるようです。セット型スカラーと一時テーブルです。私がリンクした質問は前者を示唆しています。しかし、配列変数の代わりにこれらを使用することは良い習慣ですか?あるいは、セットを使用する場合、セットベースのイディオムは何に相当しforeachますか?


8
MySQLの「テーブルを再オープンできません」エラーの回避
私は現在、フィルターをかける「タグ」ごとにINNER JOIN句を生成する必要がある種類のフィルターの実装に忙しい。 問題は、大量のSQLを実行した後、選択するために必要なすべての情報を含むテーブルがあることですが、生成されたすべてのINNER JOINに対して再び必要です。 これは基本的に次のようになります。 SELECT * FROM search INNER JOIN search f1 ON f1.baseID = search.baseID AND f1.condition = condition1 INNER JOIN search f2 ON f2.baseID = search.baseID AND f2.condition = condition2 ... INNER JOIN search fN ON fN.baseID = search.baseID AND fN.condition = conditionN これは機能しますが、「検索」テーブルを一時的なものにすることを強くお勧めします(通常のテーブルではない場合は、数桁小さい場合があります)が、非常に煩わしいエラーが発生します。 Can't reopen table …

3
選択からのインデックスを使用してMySQLで一時テーブルを作成します
一時テーブルを使用するストアド関数があります。パフォーマンス上の理由から、そのテーブルにインデックスが必要です。残念ながら、ALTER TABLEこれは暗黙のコミットを引き起こすため、使用できません。 したがって、作成中にINDEXforを追加する構文を探していますtempid。誰か助けてもらえますか? CREATE TEMPORARY TABLE tmpLivecheck ( tmpid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) SELECT * FROM tblLivecheck_copy WHERE tblLivecheck_copy.devId = did;
85 mysql  ddl  temp-tables 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.