web-dev-qa-db-ja.com

一時テーブルへのデータの挿入

一時テーブルを作成し、そのようにデータ型を宣言した後。

 CREATE TABLE #TempTable(
 ID int,
 Date datetime,
 Name char(20))

次に、データベース内の物理表にすでに保持されている関連データを挿入する方法を教えてください。

159
William
INSERT INTO #TempTable (ID, Date, Name) 
SELECT id, date, name 
FROM physical_table
210
alexsuslin

すべての列からすべてのデータを挿入するには、これを使うだけです。

SELECT * INTO #TempTable
FROM OriginalTable

一時テーブルを完成させた後はDROPを忘れずに、 の前に もう一度作成してみてください。

DROP TABLE #TempTable
72
Sheridan
SELECT  ID , Date , Name into #temp from [TableName]
71
Abdul Saboor

SQL ServerでのInsertの私のやり方。また、私は通常一時テーブルが存在するかどうかをチェックします。

IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable

SELECT b.Val as 'bVals'
  INTO #MyTable
FROM OtherTable as b
37
maxim
SELECT * 
INTO #TempTable
FROM table
14

正しいクエリ:

drop table #tmp_table

select new_acc_no, count(new_acc_no) as count1
into #tmp_table
from table
where unit_id = '0007' 
group by unit_id, new_acc_no
having count(new_acc_no) > 1
7
Ahsan Ahmad

一時テーブルを作成したら、通常のINSERT INTO () SELECT FROMを実行します。

INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
6
Taryn

同じ問題を解決するために2つの方法を提供しました。

解決策1:このアプローチには2つのステップがあります。最初に指定されたデータ型で一時テーブルを作成し、次に既存のデータテーブルから値を挿入します。

CREATE TABLE #TempStudent(tempID  int, tempName  varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1

SELECT * FROM #TempStudent

解決策2:このアプローチは簡単です。一時テーブルに値を直接挿入できます。システムは自動的に元のテーブルと同じデータ型の一時テーブルを作成します。

SELECT id, studName  INTO #TempStudent FROM students where id =1

SELECT * FROM #TempStudent
6
Ipsita Sethi
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable

これは悪い習慣と考えられていることに注意してください。

insert into #temptable 
select col1, col2, col3 from othertable

一時テーブルの定義を変更すると、実行時にコードが失敗する可能性があります。

5
Robbie Dee
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
4
Yuriy Galanter

一時テーブルの基本的な操作は以下の通りです、あなたの要求に従って修正して使用してください、

- 一時テーブルの作成

CREATE TABLE #MyTempEmployeeTable(tempUserID  varchar(MAX), tempUserName  varchar(MAX) )

- 温度テーブルへの値の挿入

INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21

- QUERY A TEMP TABLE [これは同じセッション/インスタンスでのみ機能し、他のユーザーセッションインスタンスでは機能しない]

SELECT * FROM #MyTempEmployeeTable

- TEMP TABLEのDELETE値 -

DELETE FROM #MyTempEmployeeTable

- 一時テーブルを削除

DROP TABLE #MyTempEmployeeTable
insert #temptable
select idfield, datefield, namefield from yourrealtable
2
podiluska