2009-06-18 8 views
3

J'ai recherché mais ne peut pas trouver un bon didacticiel d'utilisation de table temporaire pour un débutant dans SQL Server 2005/2008. Je veux apprendre les avantages et les inconvénients de la table temporaire par rapport à la table normale, sa durée de vie et comment la table temporaire est partagée (dans la même session, des sessions croisées)?recommande un bon tutoriel de table temporaire dans SQL Server

merci à l'avance, George

Répondre

6

Il y a deux façons de créer table temporaire. Celui-ci va créer la table et insérer les données de PHYSICALTABLE;

SELECT FIELD1,FIELD2,FIELD3 INTO TempTable FROM PHYSICALTABLE; 

L'autre façon consiste à utiliser la méthode CREATE TABLE;

CREATE TABLE #TempTable (ID int,NAME varchar(50)); 
INSERT INTO #TempTable(ID,NAME) VALUES(1,'PERSON'); 

Les tables temporaires seront supprimées par le serveur une fois la connexion fermée ou lorsque vous utiliserez la commande DROP TABLE. Sauf si vous utilisez des tables temporaires globales (en ajoutant ## dans le nom de la table), chaque connexion n'a accès qu'à ses propres tables temporaires. J'avais lu que les tables temporaires causaient des pertes de performances sur les grandes tables, donc je n'utilise généralement que les tables temporaires pour UNION deux tables puis les grouper par + SUM ces deux-là.

+0

Je suis confus au sujet du concept à propos de client votre réponse. Je ne suis pas sûr si vous voulez dire connexion? Il n'y a pas de paramètre appelé client lorsque nous établissons une connexion SQL Server. – George2

+0

Oui, je me connecte :-) –

1

Le guide suivant apparaît assez bon endroit pour commencer pour obtenir des informations détaillées sur temporaire tables (& variables de table) y compris la vie-temps, le partage etc.:

Are SQL Server Temp Tables Really Necessary? se penche également sur l'utilisation des tables temporaires pour des raisons de performance. En les comparant aux tables 'normales', je dirais que les plus grandes différences sont essentiellement que les tables normales persistent dans la base de données et doivent donc être utilisées chaque fois que vous devez stocker les données avec lesquelles vous travaillez, où des tables temporaires devraient être utilisées si juste travailler dans le cadre d'une procédure de requête/stockée etc ...

2

est ici un peu rapide de SQL pour créer une table temporaire et sélectionnez de celui-ci

-- Create Temp table 
CREATE TABLE #temps 
(
    VId int, 
    first VARCHAR(255), 
    surname VARCHAR(255), 
    DOB DATETIME 

    PRIMARY KEY (VId) 
) 

-- Insert some test data 
Insert into #temps (Vid, first, surname, DOB) 
VALUES (1, 'Bob', 'Jennings','23 Feb 1970') 


-- Insert some test data 
Insert into #temps (Vid, first, surname, DOB) 
VALUES (2, 'John', 'Doe','14 Oct 1965') 


-- Select data from the temp table 
Select * from #temps 


-- Run if you wish to drop the table 
-- DROP T ABLE #temps 
Questions connexes