powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание таблицы
8 сообщений из 8, страница 1 из 1
Создание таблицы
    #32011741
SOVA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем!

Имеется сформированная таблица SourceTable. Мне необходимо на ее основе создать постоянную таблицу NewTable. Т.е. создать такую же с некоторыми заранее известными дополнительными полями. Структура исходной таблицы может быть разной.
Я делаю это так:
1. Взял системную sp_help, убрал все лишнее. Оставил только сведения касающиеся структуры таблицы. Сделал так что бы данные о структуре таблицы SourceTable вставлялись во временную таблицу.
2. Строю сторед процедуру которая формирует SQL строку "CREATE TABLE ..." на основе данных во временной таблице.
3. Запускаю строку на исполнение.

Должна получится сторед процедура которая создает типовую таблицу NewTable на основе SourceTable.

1. Мне не нравится в этом ходе то, что используется переделанная мной sp_help! Можно как-то использовать исходную sp_help?
2. А можно обойтись без временной таблицы?
...
Рейтинг: 0 / 0
Создание таблицы
    #32011746
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>1. Мне не нравится в этом ходе то, что используется переделанная мной sp_help! Можно как-то
>использовать исходную sp_help?

А так может лучше ?
select * from INFORMATION_SCHEMA.COLUMNS where table_name = 'mytable'
...
Рейтинг: 0 / 0
Создание таблицы
    #32011749
SOVA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
)) посмеялись отдуши... честное слово!!! ))
оказывается как все просто! а мы копались пол дня... комсомольцы... без трудностей не можем! ))

Спасибо огромное!
...
Рейтинг: 0 / 0
Создание таблицы
    #32011760
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может так еще проще? :
create table #addparttable (newfield1 int, newfield2 varchar(22))
select * into newtab from sourcetable, #addparttable where 1=2
...
Рейтинг: 0 / 0
Создание таблицы
    #32011777
SOVA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уже не до смеха... а еще проще можно?
(... и полез в BOL)
...
Рейтинг: 0 / 0
Создание таблицы
    #32011796
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно вообще в одну строчку:

select *, cast(null as int) as 'field1', cast(null as numeric(15, ) as 'field2', cast(null as varchar(100)) as 'field3' into #tmp from sysobjects where 0 = 1
...
Рейтинг: 0 / 0
Создание таблицы
    #32011801
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маленькое уточнение - при использовании приведенных выше примеров в новую таблицу не будут переноситься constraint-ы вроде IDENTITY и NOT NULL, а также default значение полей, и вычисляемые поля превратяться в обыкновенные.
Если все эти особенности оригинальной таблицы не нужны в новой таблице, то проще и правда уже некуда.
...
Рейтинг: 0 / 0
Создание таблицы
    #32011881
SOVA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Glory: все эти особенности не нужны!
Всем спасибо... данная конструкция открыла просто море возможностей!
И хде я раньше был?!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Создание таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]