Я хочу создать таблицу на основе определения другой таблицы.
Я родом из оракула, и обычно я это делаю:
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, если таковой существует), но не копирует никаких индексов, ограничений, триггеров и т.д.