Яндекс.Метрика

SQL

SQL

Копирование структуры таблицы в MS SQL 2005

Задача — есть таблица, нужно создать ее копию… или пустую таблицу с такой же структурой…

Раньше я обычно использовал для этих целей DTS, поскольку потребность в копировании возникала редко и обычно касалась одной таблицы. Меня не ломало запустить Enterprise Manager / Management Studio.

Сегодня возникла необходимость копировать таблицы… много, разные и не выходя за рамки разрабатываемой программульки… т.е. DTS не предлагать, и вообще желательно обойтись только T-SQL'ем.

«ой мамочки, это ж теперь надо получив имя исходной таблицы содрать с нее create statement, не забыть бы про constraints и foreign keys… :( » — подумалось мне.

и тут, о чудо! обнаруживается способ копировать структуру таблицы в одну строку:

select * into [destinationTable] from [sourceTable] where 0 = 1

Если таблица [destinationTable] не существует то она будет создана! С такими же колонками, индексами и прочим. Правда потеряются foreign keys, но танцевать с бубном теперь прийдется гораздо меньше :D

З.Ы.: возможно это боян, но о таком поведении select..into я не знал :")