Добавьте новый столбец таблицы к определенному порядковому положению в Microsoft SQL Server

1113 Ты слишком усложняешь это. :) У Perl было это волшебство, и многие языки, включая PHP, унаследовали его:

$x = "S_000308";
$x++;
echo $x;
// => S_000309

РЕДАКТИРОВАТЬ: потребовалось немного для поиска нужного бита в документах, но здесь есть объяснение, сопровождаемое некоторыми примерами:

PHP следует соглашению Perl при работе с арифметическими операциями над символьными переменными, а не с Си. Например, в PHP и Perl $a = 'Z'; $a++; превращает $a в 'AA', а в C a = 'Z'; a++; превращает a в '[' (значение ASCII для 'Z' равно 90, значение ASCII для '[' равно 91). Обратите внимание, что символьные переменные можно увеличивать, но не уменьшать, и даже в этом случае поддерживаются только простые алфавиты и цифры ASCII (a-z, A-Z и 0-9). Увеличение / уменьшение других символьных переменных не имеет никакого эффекта, исходная строка не изменяется.

BLOCKQUOTE>

41
задан Murilo Garcia 1 October 2018 в 17:11
поделиться

3 ответа

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

Это то, что SQL Management Studio делает за кулисами.

С помощью инструмента синхронизации схемы вы можете автоматически генерировать эти скрипты.

30
ответ дан 27 November 2019 в 00:49
поделиться

зайдите в SQL Server Management Studio и "спроектируйте" существующую таблицу. Вставьте столбец посередине, щелкните правой кнопкой мыши в пустой области и выберите Создать сценарий изменения ...

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

enter image description here

Возможно, вам также придется снять этот флажок, чтобы разрешить создание сценариев изменений

enter image description here

14
ответ дан 27 November 2019 в 00:49
поделиться

Насколько мне известно, не существует известного способа изменить порядок столбцов. За кулисами SQL Management Studio делает то, что сказал Хосе Базилио. А если у вас большая таблица, то нецелесообразно менять порядок столбцов таким образом.

Вы можете использовать «представление». С представлениями SQL вы можете использовать любой порядок, который вам нравится, без изменений столбца таблицы.

3
ответ дан 27 November 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: