J'ai une requête SQL (SQL Server) et il génère des rapports, je veux stocker ce rapport exact dans une table temporaire pour pouvoir y jouer plus tard. Maintenant, la question est-ce que je dois d'abord créer une table temporaire puis y stocker le résultat de la requête SQL ou existe-t-il un moyen de créer de manière dynamique une table et de stocker le résultat de la requête?
Regardez SELECT INTO . Cela créera une nouvelle table pour vous, ce qui peut être temporaire si vous voulez en préfixant le nom de la table avec un signe dièse (#).
Par exemple, vous pouvez faire:
SELECT *
INTO #YourTempTable
FROM YourReportQuery
Vous pouvez utiliser select ... into ...
pour créer et remplir une table temporaire, puis interroger la table temporaire pour renvoyer le résultat.
select *
into #TempTable
from YourTable
select *
from #TempTable
En MySQL:
create table temp as select * from original_table
Essayer:
exec('drop table #tab') -- you can add condition 'if table exists'
exec('select * into #tab from tab')
Supposons que votre requête de rapport existante soit
Select EmployeeId,EmployeeName
from Employee
Where EmployeeId>101 order by EmployeeName
et vous devez enregistrer ces données dans la table de temparory alors vous interrogez va à
Select EmployeeId,EmployeeName
into #MyTempTable
from Employee
Where EmployeeId>101 order by EmployeeName