Создать таблицу из вида - PullRequest
43 голосов
/ 14 июля 2011

У меня есть представление, из которого я хочу создать таблицу в SQL Enterprise Manager, но я всегда получаю сообщение об ошибке при выполнении этого запроса:

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

Пока что ошибка: "синтаксическая ошибкаat 'as' "

Вид слишком велик.Можно ли использовать топ 10?

Ответы [ 9 ]

82 голосов
/ 14 июля 2011

SQL Server не поддерживает CREATE TABLE AS SELECT.

Используйте это:

SELECT  *
INTO    A
FROM    myview

или

SELECT  TOP 10
        *
INTO    A
FROM    myview
ORDER BY
        id
38 голосов
/ 14 июля 2011

Если вы просто хотите поймать схему и сделать из нее пустую таблицу, используйте ложный предикат, например:

SELECT * INTO myNewTable FROM myView WHERE 1=2
9 голосов
/ 14 июля 2011

В SQL SERVER вы делаете это следующим образом:

SELECT *
INTO A
FROM dbo.myView

Это создаст новую таблицу A с содержимым вашего представления.
Подробнее см. здесь Информация.

4 голосов
/ 14 июля 2011

Для создания таблицы на лету используется следующий синтаксис:

SELECT *
INTO A
FROM dbo.myView
3 голосов
/ 14 июля 2011

Если вы хотите создать новый A, вы можете использовать INTO;

select * into A from dbo.myView
2 голосов
/ 14 июля 2011

Очень похоже на Oracle, но на SQL Server это не работает.

Вместо этого вы можете использовать следующий синтаксис ...

SELECT
  *
INTO
  new_table
FROM
  old_source(s)
2 голосов
/ 14 июля 2011
SELECT * INTO [table_a] FROM dbo.myView
0 голосов
/ 30 октября 2015

INSERT INTO таблица 2 SELECT * FROM table1 / view1

0 голосов
/ 04 февраля 2015
Select 
    MonthEndDate MED,  
    SUM(GrossBalance/1000000) GrossBalance,
    PortfolioRename PR 
into 
    testDynamic 
from 
    Risk_PortfolioOverview  
    Group By MonthEndDate, PortfolioRename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...