Les tables temporaires sont comme les tables ordinaires dans la plupart des caractéristiques, sauf qu'elles vont dans TempDB au lieu de la base de données courante et disparaissent après une portée limitée (selon qu'elles sont basées sur des sessions temporaires ou globales). Les tables Temp sont enregistrées dans le journal des transactions, avec toutes les implications que cela implique: otoh, vous pouvez également ajouter autant d'index ou de vues, ou de triggers, ou tout ce que vous voulez à une table temporaire exactement comme vous le feriez
Les variables de tableau sont une sorte de table abrégée en mémoire (elles utilisent également la base de données temporaire) .Les modifications ne sont pas consignées (cela améliore les performances) mais vous ne pouvez obtenir qu'un seul index (car les indices ne peuvent pas être créés après la déclaration initiale s ECLARATION, le seul indice que vous pouvez créer une variable de table est celle qui peut être inclus dans le tableau initial déclaration de variable ...
Declare @Tab Table (myKey integer Primary Key Not Null, data varchar(20))
En raison de ces caractéristiques, les tables temporaires sont meilleur choix pour les grandes tables, (large et avec beaucoup de lignes), et/ou qui subiront plus d'un modèle d'accès pendant leur durée de vie, alors que les variables de table sont meilleures quand vous avez besoin d'une table très étroite (table de clés seulement, ou clé avec une seule colonne de données) toujours accessible par cette touche indexée ...
[Ma réponse couvre ici cette très complète] (http://dba.stackexchange.com/q/16385/3690) –
@ Martin: question Impressionnant, et surtout répondre. Je vous remercie! – abatishchev