2009-02-27 8 views
1

Existe-t-il une méthode pour créer des tables dynamiques dans sql server 2000?Tables dynamiques en SQL

+0

Avez-vous plus de détails sur ce que vous voulez accomplir? Essayez-vous de créer de nouvelles tables qui resteront dans la base de données? Voulez-vous modifier les tables existantes pour modifier leurs colonnes? Avez-vous besoin de tables temporaires pour le traitement des procédures stockées? –

Répondre

4

Vous pouvez créer des tables temporaires en les préfixant avec un octothorp (#), ou vous pouvez utiliser des variables de table qui sont préfixés par le symbole @.

create table #tempTable (col1 char(1)) -- Temporary table

declare @tempTableVariable table (col1 char(1)) -- Table variable

De http://www.sqlteam.com/article/temporary-tables

  • Si vous avez moins de 100 lignes utilisent généralement une variable de table. Sinon, utilisez une table temporaire. En effet, SQL Server ne créera pas de statistiques sur les variables de table.
  • Si vous devez créer des index, vous devez utiliser une table temporaire.
  • Lorsque vous utilisez des tables temporaires, créez-les toujours et créez des index, puis utilisez-les. Cela aidera à réduire les recompilations. L'impact de cela est réduit à partir de SQL Server 2005 mais c'est toujours une bonne idée.
+0

Si vous créez une table temporaire via la console d'analyse/de gestion des requêtes, la table est conservée jusqu'à ce que vous la supprimiez explicitement ou en fermant la session – RuudKok

0

Voici un exemple d'un utilisateur qui retourne fonction définie par une variable de table:

CREATE FUNCTION getDynamicTable() 
RETURNS  
    @output table (
     id int identity, 
     value nvarchar(50) 
    ) 
AS 
BEGIN 

    insert into @output (value) 
    values ('test 1') 

    insert into @output (value) 
    values ('test 2') 

    return 
END 

Hope this helps