2009-07-13 8 views

Répondre

3
  • SQL Server Management Studio
  • l'Explorateur d'objets
  • Connect -> Votre serveur
  • Bases de données -> Choisir la base de données
  • Tables
  • Clic droit sur votre table
  • Script Tableau comme -> Créer à -> Nouvelle fenêtre de l'éditeur de requête
0

Cela peut vous aider:

CREATE TABLE foo AS SELECT... 

En savoir plus here

+0

n'est pas créer une table comme sélectionnez un Oracle-ism? – ShoeLace

+0

vous pouvez le trouver dans la référence que j'ai posté ci-dessus. beaucoup de RDBS a cette fonctionnalité. –

11

Vous pouvez essayer cette

SELECT * INTO Table_Copy 
FROM Table 
where 1=2 

Il va créer une table vide avec la même structure.

+1

Je ne pense pas que vous aurez des FK, des Index, ou autres, mais si vous avez juste besoin d'un quick-n-dirty, cela fera l'affaire. –

0
select * into newtablename from sourcetablename 
go 
truncate newtablename 
go 

Cela aboutira à une copie exacte, mais il copie également les données au début que vous supprimez avec l'instruction truncate.

+0

Cela fonctionne, mais doit insérer * tout * les données dans la nouvelle table, puis supprimez-le aussi. C'est beaucoup de travail inutile qui pourrait être évité avec 'top 0' ou une clause where qui ne donne pas de résultats ... – Konerak

+0

True! Pourquoi n'ai-je pas pensé à une clause Where 1 = 2 :-) – Peter

4

Jonathan l'a (upvoted), et vous devriez probablement aller avec ça parce que c'est plus portable. J'utilise normalement quelque chose de similaire:

SELECT TOP 0 * INTO [New_Table] FROM [Old_Table] 

Je pense que ce exprime mieux ce que vous faites, mais j'aime Jonathan est parce que « TOP 0 » est spécifique à SQL Server, et ainsi son est plus facile à transporter.

1
SELECT * INTO Table_Copy 
FROM Table 
where 1=2 

Cela a très bien fonctionné lorsque j'ai essayé de créer une réplique de la table sans aucune donnée.

SELECT * INTO Table_Copy 
FROM Table 

Cela créera également une réplique avec les données.

0

create table <new table name> as select * from <old tale name from which you would like to extract data>

Il va créer une nouvelle table avec un nom différent, mais copiera toutes les données existantes de l'ancienne table à la nouvelle table.

0

dans Postgres, vous pouvez utiliser INHERITS ou mot-clé LIKE pour faire réplique d'une table (seule structure de copies de la table)

TABLE CREATE client_new (LIKE client);

ou

CREATE TABLE client_new() INHERITS (client)

Utilisation de INHERITS crée une relation permanente entre la nouvelle table enfant et sa table parent (s). Les modifications de schéma apportées au (x) parent (s) se propagent normalement aux enfants et, par défaut, les données de la table enfant sont incluses dans les analyses du (des) parent (s). La clause LIKE spécifie une table à partir de laquelle la nouvelle table copie automatiquement tous les noms de colonnes, leurs types de données et leurs contraintes non nulles. Contrairement à INHERITS, la nouvelle table et la table d'origine sont complètement découplées. Les modifications de la table d'origine ne seront pas appliquées à la nouvelle table et il n'est pas possible d'inclure les données de la nouvelle table dans les analyses de la table d'origine.

Questions connexes