Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
5 / 5 / 4
Регистрация: 24.03.2010
Сообщений: 241
Записей в блоге: 1

Копия структуры таблицы

11.02.2017, 20:22. Показов 6220. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Подскажите, пожалуйста, есть ли такая штучка (например, ХП или что-то такое) в SQL Server, которая создает копию структуры имеющегося таблицы или поля таблицы?

Например, вот такой код на одном из языке программирования:

DATA:
CCNAME TYPE T001-BUTXT,
CCCURR TYPE T001.


создает следующие объекты:

строка:
CCNAME TYPE T001-BUTXT

создает переменную CCNAME с точно таким же типом данных как поле BUTXT в таблице T001

а строка:
CCCURR TYPE T001

создает таблицу, которая полностью аналогична таблице T001 (со всеми полями, типами данных, индексами и т.д. и т.п.).

Может быть есть такая ХП или функция в SQL Server ?

Это нужно было для того, чтобы, например, не надо было бы принудительно создавать таблицу\табличную переменную CCCURR через CREATE TABLE (...) при вставке значений всех полей из таблицы T001.

Например, есть таблица T001 с полями:
IDT001 с типом данных INTEGER и поле BUKRS c типом данных NVARCHAR (4)

Индексы в полях IDT001 и BUKRS. В таблице 10 строк с данными

Теперь мне надо создать табличную переменную @lv_T001 точно такой же структуры.

И для того, чтобы не писать код:

T-SQL
1
declare @lv_T001 table (IDT001 INTEGER identity(1,1), BUKRS nvarchar(4))
было бы достаточно написать что-то типа того:

DATA:
@lv_T001 TYPE T001.


чтобы потом выполнить код:

T-SQL
1
insert into @lv_bukrs select bukrs from T001
P.S.: В принципе, если в таблице 10 полей, то написать declare @lv_T001... не сложно. Но вот если в таблице 200 полей, то код получается довольно существенный и есть риск упустить что нибудь. А так было бы просто скопировать структуру таблицу в табличную переменную и всё.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2017, 20:22
Ответы с готовыми решениями:

Перестроение структуры таблицы
Есть таблица в excel по форме: Дата, Код_подразделения, , 01-01-2014, 01235, 56 678, ...

Создание структуры Таблицы
1. Создание структуры таблицы Создайте таблицу “Покупатель”, которая состоит из полей (название полей могут быть на русском языке): ...

Копия структуры меняется при изменении оригинала
Есть структура. Хочу сделать ее резервную копию, создаю структуру такого же типа и присваиваю ей значение первоночальной структуры. Далее...

23
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.02.2017, 12:26
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от RCF Посмотреть сообщение
Идея была в том, что в теле ХП использовать табличные переменные, но чтобы не писать DECLATE @T001 TABLE (... и тут расписывать все 200 столбов...), а просто сослаться на таблицу T001 и всё.
Что свет клином сошелся на табличной переменной?
Цитата Сообщение от RCF Посмотреть сообщение
Но так как с табличной переменной не проканало, придется использовать глобальную временную таблицу через ##
Господи, а это еще для чего??
Вы бы хоть почитали что такое временные таблицы и чем глобальные отличаются от локальных.
Хотелка ваша решается элементарно:
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
create procedure ...
as
begin
 ...
 
 if object_id('tempdb..#t', 'U') is not null
  drop table #t;
 
 select <Перечень моих 200-та столбцов> into #t from T001 where ...
 
 ...
end;
0
5 / 5 / 4
Регистрация: 24.03.2010
Сообщений: 241
Записей в блоге: 1
12.02.2017, 12:45  [ТС]
Цитата Сообщение от YuryK Посмотреть сообщение
Только даже не представляю такую ХП и зачем в ней копия таблицы
Нужна копия структуры таблицы, а не копия самой таблицы со всеми записями. Будет использоваться для того, чтобы в эту структуру из основной таблицы скопировать, например, 10 строк, а не все 15 000. И чтобы эта структура желательно хранилась в оперативной памяти, а не как физическая таблица.

Надеюсь, объяснил доходчиво.

Добавлено через 5 минут
Цитата Сообщение от invm Посмотреть сообщение
Хотелка ваша решается элементарно
Хм... Спасибо за хорошую подсказку. Но изначально у меня не создавалась локальная таблица... а теперь всё нормально.

Видимо что-то не так делал...
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
12.02.2017, 12:46
Цитата Сообщение от RCF Посмотреть сообщение
Нужна копия структуры таблицы, а не копия самой таблицы со всеми записями. Будет использоваться для того, чтобы в эту структуру из основной таблицы скопировать, например, 10 строк, а не все 15 000.
Я вам уже показал как это сделать одной инструкцией. Впрочем, уговаривать не буду. Если нравится долбаться головой об стену - дело ваше.
Цитата Сообщение от RCF Посмотреть сообщение
И чтобы эта структура желательно хранилась в оперативной памяти, а не как физическая таблица.
Любые таблицы (постоянные, временные, табличные переменные) всегда хранятся как физические таблицы.
0
5 / 5 / 4
Регистрация: 24.03.2010
Сообщений: 241
Записей в блоге: 1
12.02.2017, 12:59  [ТС]
Цитата Сообщение от invm Посмотреть сообщение
Я вам уже показал как это сделать одной инструкцией. Впрочем, уговаривать не буду. Если нравится долбаться головой об стену - дело ваше
Да я понял что вы имеете ввиду... Спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2017, 12:59
Помогаю со студенческими работами здесь

полная копия таблицы
но исходная находится на другом сервере mysql как сделать получше?

Динамическое изменение структуры таблицы для организации древовиднойой структуры
Доброго времени суток. У меня такой вот вопрос: Необходимо сделать возможность добавления записей в таблицу определнным образом (через...

Массивы, структуры, таблицы. Признак конца таблицы
Здравствуйте. Я занимаюсь электроникой. Пишу программы для микроконтроллеров. Си недавно начал изучать. До этого писал на асме. Как мне...

Структуры в виде таблицы
Программа должна вывести на экран все записи в виде таблицы. Атрибуты 1. Название лекарства 2. Производитель 3. Цена ...

Изменение структуры таблицы
Добрый день. Выполняю в Delphi такой код procedure TfrmMain.btnAddClick(Sender: TObject); var index:integer; begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru