Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Перемещение поля внутри таблицы на SQL  [new]
Hamber
Member

Откуда: Москва
Сообщений: 311
Таблица table1 имеет поля id1,id2,id3

По конструкции

ALTER TABLE table1 ADD id4 int


добавляет столбец в конце.

Как программно его переместить после id1 ?

чтобы при select * from table1 поля выводились в последовательности id1,id4,id2,id3
8 ноя 12, 16:44    [13440947]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Konst_One
Member

Откуда:
Сообщений: 11677
или так:
select id1, id2, ... from table1


или делайте вью, в котором уже нужный вам порядок, а потом:
select * from view1
8 ноя 12, 16:46    [13440961]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Hamber
Member

Откуда: Москва
Сообщений: 311
Необходимо чтобы при * поля по умолчанию шли в нужной последовательности
8 ноя 12, 16:48    [13440974]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Hamber
Необходимо чтобы при * поля по умолчанию шли в нужной последовательности

жесть
Пересоздайте таблицу с нужным порядком полей и перелейте в нее данные из исходной
8 ноя 12, 16:51    [13440992]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Hamber
Необходимо чтобы при * поля по умолчанию шли в нужной последовательности


Отказывайтесь от * в перечне выборки. Это избавит Вас от многих проблем в дальнейшем.

ЗЫ. Сабж решается через создание новой таблицы.
8 ноя 12, 16:51    [13440996]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Crimean
Member

Откуда:
Сообщений: 13147
или таки уходить на вью, раз используются с одной стороны select * а с другой - хаотично добавляются поля + критичен порядок полей.. работа с данными через вью остается вполне себе прозрачной
8 ноя 12, 16:55    [13441027]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Купите линейку и бейте себя каждый раз по рукам, когда пишите * в запросе. Тогда надобность переставлять поля в таблице пропадет сама собой.
8 ноя 12, 17:16    [13441168]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Hamber
Member

Откуда: Москва
Сообщений: 311
Зачем вы начинаете обсуждать, то чего не надо?

Я попросил конкретный вопрос. А вы говорите, что надо/не надо. Не в этом дело.

Это я всё итак прекрасно знаю.

В Managment Studio можно потянуть за поле и переместить его между любыми двумя полями, нажать "Сохранить" и оно будет на том месте где надо.

Зачем это надо?
Есть таблица, которая хранила в себе поля.
Вот нужно добавить поле посередине этих всех полей т.к. новое поле имеет смысловую нагрузку что и другое, а не добавлять его в конце списка.

Это удобно с точки зрения общей структуры таблицы, и наглядно при использовании * когда в студии анализируешь выборку таблицы, но не при программировании!!!

Студия перемещения полей делает без создания новой таблицы и переноса туда данных (я так думаю).

В интернете как это сделать через системные команды не нашел.

Есть, кто знает?
8 ноя 12, 17:36    [13441335]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Hamber
Студия перемещения полей делает без создания новой таблицы и переноса туда данных (я так думаю).

Вы свои мысли профайлером проверте.. меньше глупых идей возникать будет
8 ноя 12, 17:38    [13441346]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Hamber
Студия перемещения полей делает без создания новой таблицы и переноса туда данных (я так думаю).

А вы не думая нажмите в студии Generate change script...
8 ноя 12, 17:42    [13441374]     Ответить | Цитировать Сообщить модератору
 Re: Перемещение поля внутри таблицы на SQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 32167
Hamber
Студия перемещения полей делает без создания новой таблицы и переноса туда данных (я так думаю).

В интернете как это сделать через системные команды не нашел.

Есть, кто знает?
Вам же тут всё написали, или этот форум - не интернет? :-)

Студия делает пересозданием таблицы и всего прочего, что к ней прилагается (триггеры, констрейны, индексы и т.п.) и переливает данные.
8 ноя 12, 18:22    [13441672]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить