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?
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
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
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.
Si vous voulez créer une nouvelle A
, vous pouvez utiliser INTO
;
select * into A from dbo.myView
Pour créer une table à la volée, utilisez cette syntaxe:
SELECT *
INTO A
FROM dbo.myView
SELECT * INTO [table_a] FROM dbo.myView
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)
INSERT INTO table 2SELECT * FROM table1/view1
Select
MonthEndDate MED,
SUM(GrossBalance/1000000) GrossBalance,
PortfolioRename PR
into
testDynamic
from
Risk_PortfolioOverview
Group By MonthEndDate, PortfolioRename