Nachdem Sie eine temporäre Tabelle erstellt und die Datentypen wie folgt deklariert haben:
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
Wie füge ich dann die relevanten Daten ein, die sich bereits in einer physischen Tabelle in der Datenbank befinden?
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table
Um alle Daten aus allen Spalten einzufügen, verwenden Sie einfach Folgendes:
SELECT * INTO #TempTable
FROM OriginalTable
Vergessen Sie nicht, die temporäre Tabelle zu DROP
, nachdem Sie damit fertig sind, und vorher Sie versuchen, sie erneut zu erstellen:
DROP TABLE #TempTable
SELECT ID , Date , Name into #temp from [TableName]
Meine Art von Insert
in SQL Server. Außerdem überprüfe ich normalerweise, ob eine temporäre Tabelle existiert.
IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable
SELECT b.Val as 'bVals'
INTO #MyTable
FROM OtherTable as b
SELECT *
INTO #TempTable
FROM table
Die richtige Abfrage:
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
Nachdem Sie die temporäre Tabelle erstellt haben, würden Sie einfach ein normales INSERT INTO () SELECT FROM
ausführen.
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
Ich habe zwei Ansätze angegeben, um das gleiche Problem zu lösen:
Lösung 1: Dieser Ansatz umfasst zwei Schritte: Erstellen Sie zunächst eine temporäre Tabelle mit dem angegebenen Datentyp und fügen Sie anschließend den Wert aus der vorhandenen Datentabelle ein.
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
Lösung 2: Dieser Ansatz ist einfach: Sie können die Werte direkt in eine temporäre Tabelle einfügen, wobei das System automatisch dafür sorgt, dass die temporäre Tabelle mit demselben Datentyp wie die Originaltabelle erstellt wird.
SELECT id, studName INTO #TempStudent FROM students where id =1
SELECT * FROM #TempStudent
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
Beachten Sie, dass dies als schlechte Praxis angesehen wird:
insert into #temptable
select col1, col2, col3 from othertable
Wenn sich die Definition der temporären Tabelle ändern würde, könnte der Code zur Laufzeit fehlschlagen.
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
Grundlegender Betrieb der temporären Tabelle wird unten gegeben, ändern Sie und verwenden Sie entsprechend Ihren Anforderungen,
- ERSTELLE EINE TEMP-TABELLE
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) )
- INSERT VALUE IN EINE TEMP-TABELLE
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
- QUERY A TEMP TABLE [Dies funktioniert nur in derselben Sitzung/Instanz, nicht in einer anderen Benutzersitzungsinstanz]
SELECT * FROM #MyTempEmployeeTable
- WERT IN TEMP-TABELLE LÖSCHEN
DELETE FROM #MyTempEmployeeTable
- TEMP-TABELLE TROPFEN
DROP TABLE #MyTempEmployeeTable
insert #temptable
select idfield, datefield, namefield from yourrealtable