web-dev-qa-db-fra.com

Insertion de données dans une table temporaire

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?

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

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
76
Sheridan
SELECT  ID , Date , Name into #temp from [TableName]
71
Abdul Saboor

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
38
maxim
SELECT * 
INTO #TempTable
FROM table
14
Ravi Teja Koneru

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
7
Ahsan Ahmad

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
6
Taryn

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
6
Ipsita Sethi
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.

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

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
3
insert #temptable
select idfield, datefield, namefield from yourrealtable
2
podiluska