web-dev-qa-db-fra.com

Créer une table à partir de la vue

Je souhaite créer une table dans SQL Enterprise Manager, mais j'obtiens toujours une erreur lorsque j'exécute cette requête:

CREATE TABLE A 
AS
(SELECT top 10 FROM dbo.myView)

Jusqu'à présent, l'erreur est la suivante: "erreur de syntaxe à" en tant que "" 

La vue est trop grande. Est-il possible d'utiliser un top 10?

41
tdjfdjdj

SQL Server ne supporte pas CREATE TABLE AS SELECT.

Utilisez ceci:

SELECT  *
INTO    A
FROM    myview

ou 

SELECT  TOP 10
        *
INTO    A
FROM    myview
ORDER BY
        id
77
Quassnoi

Si vous voulez juste accrocher le schéma et en faire une table vide, utilisez un faux prédicat, comme ceci:

SELECT * INTO myNewTable FROM myView WHERE 1=2
37
Pittsburgh DBA

Dans SQL Server, vous le faites comme ceci:

SELECT *
INTO A
FROM dbo.myView

Cela créera une nouvelle table A avec le contenu de votre vue.
Voir ici pour plus d’informations.

9
Daniel Hilgarth

Si vous voulez créer une nouvelle A, vous pouvez utiliser INTO;

select * into A from dbo.myView
3
Alex K.

Pour créer une table à la volée, utilisez cette syntaxe:

SELECT *
INTO A
FROM dbo.myView
3
Keith
SELECT * INTO [table_a] FROM dbo.myView
2
mikey

Cela ressemble beaucoup à Oracle, mais cela ne fonctionne pas sur SQL Server.

Vous pouvez plutôt adopter la syntaxe suivante ...

SELECT
  *
INTO
  new_table
FROM
  old_source(s)
1
MatBailie

INSERT INTO table 2SELECT * FROM table1/view1

0
amstegraf
Select 
    MonthEndDate MED,  
    SUM(GrossBalance/1000000) GrossBalance,
    PortfolioRename PR 
into 
    testDynamic 
from 
    Risk_PortfolioOverview  
    Group By MonthEndDate, PortfolioRename
0
javal