Задача — есть таблица, нужно создать ее копию… или пустую таблицу с такой же структурой…
Раньше я обычно использовал для этих целей 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 я не знал :")