Je veux créer une table basée sur la définition d'une autre table.
Je viens d'Oracle et je ferais normalement ceci:
CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;
Je n'arrive pas à faire cela dans SQL Server 2008.
Une telle syntaxe n'existe pas dans SQL Server, bien que CREATE TABLE AS ... SELECT
existe dans PDW. Dans SQL Server, vous pouvez utiliser cette requête pour créer une table vide:
SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0;
(Si vous voulez faire une copie de la table y compris toutes les données, laissez de côté la clause WHERE
.)
Notez que cela crée la même structure de colonne (y compris une colonne IDENTITY s'il en existe une) mais ne copie aucun index, contrainte, déclencheur, etc.
select * into newtable from oldtable