|
Добавления поля
|
|||
---|---|---|---|
#18+
Здравствуйте в чем может быть ошибка Пытаюсь добавить поле в существующую таблицу ALTER TABLE dbo.Table1 ADD Поле_1 float AFTER Поле_5 Ругается на AFTER, если без AFTER то нормально в конце добавляет, а если надо после конкретного столбца то AFTER не проходит SQL сервер 2012 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 17:49 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
aseylanyan а если надо после конкретного столбца то AFTER не проходит Тебе это не надо. И никому не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 17:55 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
aseylanyan Здравствуйте в чем может быть ошибка Пытаюсь добавить поле в существующую таблицу ALTER TABLE dbo.Table1 ADD Поле_1 float AFTER Поле_5 Ругается на AFTER, если без AFTER то нормально в конце добавляет, а если надо после конкретного столбца то AFTER не проходит Посмотрел ALTER TABLE нету там никакого AFTER ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 18:45 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
AFTER Поле_5 -- это в какой-то другой СУБД. Видимо, в этой СУБД никак без этого, в отличие от MSSQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 19:51 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
НУ тогда подскажите, а есть возможность добавить поле не в конце, а после конкретного поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 21:09 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
aseylanyan НУ тогда подскажите, а есть возможность добавить поле не в конце, а после конкретного поля. Отучайтесь писать select * и не нужно будет шаманить с порядком столбцов в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 21:32 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
invm Отучайтесь писать select * и не нужно будет шаманить с порядком столбцов в таблице. К сожалению, select * не единственный случай, когда порядок столбцов важен. Сходу - Switch, temporal таблицы. В sql server добавили некое количество функционала, требующего определённого порядка полей, но не дали возможности этим порядком управлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 21:49 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
msLex, Мне думается, что у ТС именно select * ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 22:01 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
msLex К сожалению, select * не единственный случай, когда порядок столбцов важен. Сходу - Switch, temporal таблицы. Таблицу, которую нужно присоединить, просто делают такой же, как секционированная таблица. Или, если в обе таблицы добавляют поле, оно добавляется в конце, в обоих случаях. Абстрактно, было бы неплохо двигать поля как вздумается, но, как я себе представляю, это физически невозможно без пересоздания таблицы, либо без поддержки двух указателей на порядок - "физический", и "презентационный", что требует указания идентификаторов столбца на каждой станице (то есть в заголовке каждого слота). То есть это требует кардинальных изменений в движке. Как альтернатива, можно было бы сделать перемещения столбцов в ALTER TABLE (и указания по месту размещения новых столбцов), но делаться это всё равно будет пересозданием таблицы. И т.к. это нужно редко, то, видимо, посчитали достаточным, что это можно сделать через UI-приложение (то есть в SSMS). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 23:19 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
alexeyvgКак альтернатива, можно было бы сделать перемещения столбцов в ALTER TABLE (и указания по месту размещения новых столбцов), но делаться это всё равно будет пересозданием таблицы.Да как бы можно на уровне метаданных всегда зафиксировать маппинг, типа, что пятое поле теперь седьмое. Данные зачем перелопчивать? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2019, 23:50 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич alexeyvgКак альтернатива, можно было бы сделать перемещения столбцов в ALTER TABLE (и указания по месту размещения новых столбцов), но делаться это всё равно будет пересозданием таблицы. То есть вот это - "пятое поле теперь седьмое" - нужно прописывать в каждой странице. И не забываем записи в лог - их это тоже коснётся. Это слишком сильное изменение формата файлов БД, и инжина, который МС менять не любит, предпочитая менять ядро дот-нет костылями. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 01:05 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
alexeyvgи вот в части страниц один физический порядок полей, а в части - другой Страниц? Филлфактор до уровня секции опустить не могут с 2005го года, а тут какую-то хрень, и сразу до страниц. Нонсенс же. А для каких-то не понятных целей можно теоретически запилить на первый взгляд недорого на уровне таблицы логическую перестановку полей. Осталось понять, зачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 03:34 |
|
Добавления поля
|
|||
---|---|---|---|
#18+
Гавриленко Сергей Алексеевич alexeyvgи вот в части страниц один физический порядок полей, а в части - другой Страниц? Филлфактор до уровня секции опустить не могут с 2005го года, а тут какую-то хрень, и сразу до страниц. Нонсенс же.Вот, я про это и говорю :-( То есть, для функциональности, подобной упомянутым msLex 22051209 , это сложно. Гавриленко Сергей Алексеевич А для каких-то не понятных целей можно теоретически запилить на первый взгляд недорого на уровне таблицы логическую перестановку полей. Осталось понять, зачем. Но при планировании изменений, фич, МС обычно выслушивает аргументы от клиентов по типу "сколько мы теряем каждый год, из за отсутствия фичи", или "сколько нам прибыли принесёт новая фича". Порядок полей в "select *" трудно прикрутить к прибыли бизнеса пользователя SQL Server... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2019, 12:59 |
|
|
start [/forum/topic.php?fid=46&msg=39909678&tid=1686696]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 137ms |
0 / 0 |