Après avoir créé une table temporaire et déclaré les types de données de la manière suivante:
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
Comment puis-je insérer les données pertinentes qui se trouvent déjà sur une table physique dans la base de données?
INSERT INTO #TempTable (ID, Date, Name)
SELECT id, date, name
FROM physical_table
Pour insérer toutes les données de toutes les colonnes, utilisez ceci:
SELECT * INTO #TempTable
FROM OriginalTable
N'oubliez pas de DROP
la table temporaire une fois que vous avez terminé et avant vous essayez de la créer à nouveau:
DROP TABLE #TempTable
SELECT ID , Date , Name into #temp from [TableName]
Ma manière de Insert
dans SQL Server. En outre, je vérifie généralement si une table temporaire existe.
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
La bonne requête:
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
Après avoir créé la table temporaire, vous feriez simplement une INSERT INTO () SELECT FROM
normale
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
J'ai fourni deux approches pour résoudre le même problème,
Solution 1: cette approche comprend 2 étapes: commencez par créer une table temporaire avec le type de données spécifié, puis insérez la valeur à partir de la table de données existante.
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
Solution 2: cette approche est simple: vous pouvez directement insérer les valeurs dans une table temporaire. Le système se charge automatiquement de créer la table temporaire avec le même type de données que la table d'origine.
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
Notez que ceci est considéré comme une mauvaise pratique:
insert into #temptable
select col1, col2, col3 from othertable
Si la définition de la table temporaire devait changer, le code pourrait échouer à l'exécution.
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable
Le fonctionnement de base de la table temporaire est indiqué ci-dessous, à modifier et à utiliser selon vos besoins,
- CREATE A TEMP TABLE
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) )
- INSERT VALUE DANS UNE TABLE TEMP
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
- QUERY A TEMP TABLE [Ceci fonctionnera seulement dans la même session/instance, pas dans une autre instance de session utilisateur]
SELECT * FROM #MyTempEmployeeTable
- DELETE VALUE IN TEMP TABLE
DELETE FROM #MyTempEmployeeTable
- DROP A TEMP TABLE
DROP TABLE #MyTempEmployeeTable
insert #temptable
select idfield, datefield, namefield from yourrealtable