Как создать таблицу на основе другой таблицы

Я хочу создать таблицу на основе определения другой таблицы.

Я родом из оракула, и обычно я это делаю:

 CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;

Я не могу сделать это в SQL Server 2008.

Ответы

Ответ 1

В SQL Server такого синтаксиса нет, хотя в PDW существует CREATE TABLE AS ... SELECT. В SQL Server вы можете использовать этот запрос для создания пустой таблицы:

SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0;

(Если вы хотите сделать копию таблицы, включающей все данные, оставьте в разделе WHERE).

Обратите внимание, что это создает ту же структуру столбцов (включая столбец IDENTITY, если таковой существует), но не копирует никаких индексов, ограничений, триггеров и т.д.

Ответ 2

select * into newtable from oldtable