Nadat je een tijdelijke tabel hebt gemaakt en de gegevenstypen als volgt hebt gedeclareerd;
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
Hoe voeg ik dan de relevante gegevens in die al op een fysieke tafel in de database staan?
Antwoord 1, autoriteit 100%
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table
Antwoord 2, autoriteit 46%
Gebruik dit om alle gegevens uit alle kolommen in te voegen:
SELECT * INTO #TempTable
FROM OriginalTable
Vergeet niet om de tijdelijke tabel DROP
te zetten nadat je ermee klaar bent en voordat je hem opnieuw probeert te maken:
DROP TABLE #TempTable
Antwoord 3, autoriteit 29%
SELECT ID , Date , Name into #temp from [TableName]
Antwoord 4, autoriteit 16%
Mijn manier van Insert
in SQL Server. Ook controleer ik meestal of er een tijdelijke tabel bestaat.
IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable
SELECT b.Val as 'bVals'
INTO #MyTable
FROM OtherTable as b
Antwoord 5, autoriteit 8%
SELECT *
INTO #TempTable
FROM table
Antwoord 6, autoriteit 7%
Ik heb twee benaderingen gegeven om hetzelfde probleem op te lossen,
Oplossing 1: Deze aanpak omvat 2 stappen, maak eerst een tijdelijke tabel met
opgegeven gegevenstype, voeg vervolgens de waarde van de bestaande gegevens in
tafel.
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
Oplossing 2: Deze aanpak is eenvoudig, waarbij u de waarden direct kunt invoegen in
tijdelijke tabel, waar het systeem automatisch zorgt voor het maken
de tijdelijke tabel met hetzelfde gegevenstype van de originele tabel.
SELECT id, studName INTO #TempStudent FROM students where id =1
SELECT * FROM #TempStudent
Antwoord 7, autoriteit 3%
Nadat je de tijdelijke tabel hebt gemaakt, doe je gewoon een normale INSERT INTO () SELECT FROM
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
Antwoord 8, autoriteit 3%
De juiste vraag:
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
Antwoord 9, autoriteit 2%
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
Merk op dat dit als een slechte gewoonte wordt beschouwd:
insert into #temptable
select col1, col2, col3 from othertable
Als de definitie van de tijdelijke tabel zou veranderen, zou de code tijdens runtime kunnen mislukken.
Antwoord 10, autoriteit 2%
De basisbediening van de tijdelijke tabel wordt hieronder gegeven, wijzig en gebruik volgens uw vereisten,
— MAAK EEN TIJDELIJKE TABEL
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) )
— VOEG WAARDE IN IN EEN TEMP TABEL
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
— QUERY A TEMP TABLE [Dit werkt alleen in dezelfde sessie/instantie, niet in een andere gebruikerssessie]
SELECT * FROM #MyTempEmployeeTable
— VERWIJDER WAARDE IN TEMP TABEL
DELETE FROM #MyTempEmployeeTable
— DROP EEN TIJDELIJKE TAFEL
DROP TABLE #MyTempEmployeeTable
Antwoord 11
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
Antwoord 12
insert #temptable
select idfield, datefield, namefield from yourrealtable
Antwoord 13
Alle bovengenoemde antwoorden zullen bijna aan het doel voldoen. U moet echter de tijdelijke tabel laten vallen na alle bewerkingen erop. U kunt volgen-
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table;
IF OBJECT_ID('tempdb.dbo.#TempTable') IS NOT NULL
DROP TABLE #TempTable;
Antwoord 14
Alle bovengenoemde antwoorden zullen bijna aan het doel voldoen. U moet echter de tijdelijke tabel laten vallen na alle bewerkingen erop. U kunt volgen-
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table;
IF OBJECT_ID('tempdb.dbo.#TempTable') IS NOT NULL
DROP TABLE #TempTable;