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

    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 я не знал :")