powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Добавления поля
14 сообщений из 14, страница 1 из 1
Добавления поля
    #39909622
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте в чем может быть ошибка
Пытаюсь добавить поле в существующую таблицу

ALTER TABLE dbo.Table1 ADD Поле_1 float AFTER Поле_5

Ругается на AFTER, если без AFTER то нормально в конце добавляет, а если надо после конкретного столбца то AFTER не проходит
SQL сервер 2012
...
Рейтинг: 0 / 0
Добавления поля
    #39909624
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyan
а если надо после конкретного столбца то AFTER не проходит

Тебе это не надо.
И никому не надо.
...
Рейтинг: 0 / 0
Добавления поля
    #39909630
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyan
Здравствуйте в чем может быть ошибка
Пытаюсь добавить поле в существующую таблицу

ALTER TABLE dbo.Table1 ADD Поле_1 float AFTER Поле_5

Ругается на AFTER, если без AFTER то нормально в конце добавляет, а если надо после конкретного столбца то AFTER не проходит
Это откуда такой синтаксис?
Посмотрел ALTER TABLE нету там никакого AFTER
...
Рейтинг: 0 / 0
Добавления поля
    #39909642
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFTER Поле_5 -- это в какой-то другой СУБД. Видимо, в этой СУБД никак без этого, в отличие от MSSQL.
...
Рейтинг: 0 / 0
Добавления поля
    #39909661
aseylanyan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
НУ тогда подскажите, а есть возможность добавить поле не в конце, а после конкретного поля.
...
Рейтинг: 0 / 0
Добавления поля
    #39909668
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aseylanyan
НУ тогда подскажите, а есть возможность добавить поле не в конце, а после конкретного поля.
Нет. Только пересозданием таблицы.

Отучайтесь писать select * и не нужно будет шаманить с порядком столбцов в таблице.
...
Рейтинг: 0 / 0
Добавления поля
    #39909669
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
invm


Отучайтесь писать select * и не нужно будет шаманить с порядком столбцов в таблице.

К сожалению, select * не единственный случай, когда порядок столбцов важен.
Сходу - Switch, temporal таблицы.
В sql server добавили некое количество функционала, требующего определённого порядка полей, но не дали возможности этим порядком управлять.
...
Рейтинг: 0 / 0
Добавления поля
    #39909671
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex,

Мне думается, что у ТС именно select *
...
Рейтинг: 0 / 0
Добавления поля
    #39909678
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
К сожалению, select * не единственный случай, когда порядок столбцов важен.
Сходу - Switch, temporal таблицы.
Для Switch это не проблема, т.к. его не делают для совершенно различных таблиц, которые нужно привести к общему виду.
Таблицу, которую нужно присоединить, просто делают такой же, как секционированная таблица.
Или, если в обе таблицы добавляют поле, оно добавляется в конце, в обоих случаях.

Абстрактно, было бы неплохо двигать поля как вздумается, но, как я себе представляю, это физически невозможно без пересоздания таблицы, либо без поддержки двух указателей на порядок - "физический", и "презентационный", что требует указания идентификаторов столбца на каждой станице (то есть в заголовке каждого слота). То есть это требует кардинальных изменений в движке.

Как альтернатива, можно было бы сделать перемещения столбцов в ALTER TABLE (и указания по месту размещения новых столбцов), но делаться это всё равно будет пересозданием таблицы.
И т.к. это нужно редко, то, видимо, посчитали достаточным, что это можно сделать через UI-приложение (то есть в SSMS).
...
Рейтинг: 0 / 0
Добавления поля
    #39909685
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgКак альтернатива, можно было бы сделать перемещения столбцов в ALTER TABLE (и указания по месту размещения новых столбцов), но делаться это всё равно будет пересозданием таблицы.Да как бы можно на уровне метаданных всегда зафиксировать маппинг, типа, что пятое поле теперь седьмое. Данные зачем перелопчивать?
...
Рейтинг: 0 / 0
Добавления поля
    #39909690
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
alexeyvgКак альтернатива, можно было бы сделать перемещения столбцов в ALTER TABLE (и указания по месту размещения новых столбцов), но делаться это всё равно будет пересозданием таблицы.
Да как бы можно на уровне метаданных всегда зафиксировать маппинг, типа, что пятое поле теперь седьмое. Данные зачем перелопчивать?Хе, вы представьте, что таблицу подключают как секцию к другой таблице, и вот в части страниц один физический порядок полей, а в части - другой. Притом, т.к. границы будут меняться, это нельзя зафиксировать для секции.

То есть вот это - "пятое поле теперь седьмое" - нужно прописывать в каждой странице. И не забываем записи в лог - их это тоже коснётся.

Это слишком сильное изменение формата файлов БД, и инжина, который МС менять не любит, предпочитая менять ядро дот-нет костылями.
...
Рейтинг: 0 / 0
Добавления поля
    #39909702
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgи вот в части страниц один физический порядок полей, а в части - другой
Страниц? Филлфактор до уровня секции опустить не могут с 2005го года, а тут какую-то хрень, и сразу до страниц. Нонсенс же.
А для каких-то не понятных целей можно теоретически запилить на первый взгляд недорого на уровне таблицы логическую перестановку полей. Осталось понять, зачем.
...
Рейтинг: 0 / 0
Добавления поля
    #39909805
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич
alexeyvgи вот в части страниц один физический порядок полей, а в части - другой

Страниц? Филлфактор до уровня секции опустить не могут с 2005го года, а тут какую-то хрень, и сразу до страниц. Нонсенс же.Вот, я про это и говорю :-(
То есть, для функциональности, подобной упомянутым msLex 22051209 , это сложно.
Гавриленко Сергей Алексеевич
А для каких-то не понятных целей можно теоретически запилить на первый взгляд недорого на уровне таблицы логическую перестановку полей. Осталось понять, зачем.
А вот для select * такое сделать не так сложно.
Но при планировании изменений, фич, МС обычно выслушивает аргументы от клиентов по типу "сколько мы теряем каждый год, из за отсутствия фичи", или "сколько нам прибыли принесёт новая фича".
Порядок полей в "select *" трудно прикрутить к прибыли бизнеса пользователя SQL Server...
...
Рейтинг: 0 / 0
Добавления поля
    #39909820
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Порядок столбцов важен, если где-то в коде определена битовая маска изменений и никто об этом не догадывается.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Добавления поля
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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