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

Откуда:
Сообщений: 316
есть таблица
...col1col2col3col4...
...texttexttext text...
..................
...texttexttext text...

есть необходимость переименовать колонки, к примеру, следующим образом:
...col3col1col4col2...
...texttexttext text...
..................
...texttexttexttext...

С помощью чего это сделать - не проблема (sp_rename).
Проблема возникает уже во время переименования, сервер ругается на дубликат имени колонок.
Как вариант можно переименовать с припиской '_temp', а потом снова переименовать, убрав приписку. Но это двойная работа.
Может есть еще какие-то варианты как это сделать с минимальным обращением к БД?
28 янв 16, 10:38    [18739101]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
Glory
Member

Откуда:
Сообщений: 104751
_Novichok
Как вариант можно переименовать с припиской '_temp', а потом снова переименовать, убрав приписку. Но это двойная работа.
Может есть еще какие-то варианты как это сделать с минимальным обращением к БД?

sp_rename и есть вариант "с минимальным обращением к БД".
Потому что меняются только метаданные в системных таблицах.
28 янв 16, 10:41    [18739109]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
_Novichok,

переименовать колонки требуется с какой целью?
28 янв 16, 12:43    [18739704]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
_Novichok
Member

Откуда:
Сообщений: 316
Владислав Колосов,

с той целью, что в программе они потом сортируются как раз по индексу и в зависимости от порядка колонок и будет зависеть результат работы
28 янв 16, 18:24    [18741911]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
_Novichok
Владислав Колосов,

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


а поля выводите через
select *
?
28 янв 16, 19:01    [18742132]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
_Novichok
Как вариант можно переименовать с припиской '_temp', а потом снова переименовать, убрав приписку. Но это двойная работа.
Может есть еще какие-то варианты как это сделать с минимальным обращением к БД?
Вам просто лень писать или вы думаете, что у сервера ресурсов не хватит выполнить двойную работу?
28 янв 16, 20:03    [18742433]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8828
_Novichok
Владислав Колосов,

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


Порядок колонок ни на что не влияет по закону. Если влияет, то Вы что-то делаете неправильно.
29 янв 16, 12:33    [18744925]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
_Novichok
с той целью, что в программе они потом сортируются как раз по индексу и в зависимости от порядка колонок и будет зависеть результат работы

select col3,col1,col4.....from 
29 янв 16, 12:49    [18744999]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
_Novichok
Владислав Колосов,

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


Это у тебя не бд, а ад для разработчика РСУБД...
Тебя туда за какие грехи сослали?

Если что, "молитва" по ссылке:

https://ru.wikipedia.org/wiki/Первая_нормальная_форма
30 янв 16, 08:49    [18749256]     Ответить | Цитировать Сообщить модератору
 Re: Переименование колонок, избежать дубликатов  [new]
_Novichok
Member

Откуда:
Сообщений: 316
ну что скажу: колонки с индексами генерятся автоматически, не я это придумал, мне остается только поддерживать и допиливать новые фичи поверх существующего. Есть такие задачи, где это нужно
31 янв 16, 02:36    [18751740]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить