Как изменить порядок столбцов в таблице с помощью запроса SQL в SQL-сервере 2005?

Мне нравится JMock, потому что Вы в состоянии настроить ожидания. Это полностью отличается от проверки, если метод назвали найденным в некоторых ложных библиотеках. Используя JMock можно записать очень сложные ожидания. Посмотрите обман-sheat jmock .

95
задан Maniero 30 January 2015 в 11:48
поделиться

5 ответов

Вы не можете. Порядок столбцов - это просто «косметическая» вещь, которая заботит нас, людей, - для SQL Server он почти всегда абсолютно не имеет значения.

То, что SQL Server Management Studio делает в фоновом режиме, когда вы меняете порядок столбцов, создает заново таблицу с нуля с помощью новая команда CREATE TABLE , копирующая данные из старой таблицы и затем удаляющая их.

Нет команды SQL для определения порядка столбцов.

96
ответ дан 24 November 2019 в 05:50
поделиться

Используйте

SELECT * FROM TABLE1

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

Если вы хотите изменить порядок столбцов.

Укажите имя столбца для отображения соответственно

SELECT COLUMN1, COLUMN5, COLUMN4, COLUMN3, COULMN2 FROM TABLE1
-1
ответ дан 24 November 2019 в 05:50
поделиться

Вы должны явно указать поля в том порядке, в котором вы хотите, чтобы они возвращались, вместо использования * в качестве «по умолчанию».

исходный запрос:

select * from foobar

возвращает

foo bar
--- ---
  1   2

теперь напишите

select bar, foo from foobar

bar foo
--- ---
  2   1
26
ответ дан 24 November 2019 в 05:50
поделиться

Конечно, вы можете изменить порядок столбцов в инструкции sql. Однако, если вы хотите абстрагироваться от физического порядка столбцов таблиц, вы можете создать представление. т.е.

CREATE TABLE myTable(
    a int NULL,
    b varchar(50) NULL,
    c datetime NULL
);


CREATE VIEW vw_myTable
AS
SELECT c, a, b
  FROM myTable;

select * from myTable;
a  b  c
-  -  -

select * from vw_myTable
c  a  b
-  -  -
11
ответ дан 24 November 2019 в 05:50
поделиться

Это похоже на вопрос об упорядочивании записей в результате запроса .. и обычно никому не нравится формально правильный ответ; -)

Итак, вот оно:

  • согласно стандарту SQL столбцы в таблице не «упорядочиваются»
  • , в результате select * не заставляет возвращать столбцы в определенном порядке
  • обычно, каждый У СУБД есть своего рода порядок «по умолчанию» (обычно это порядок, в котором столбцы были добавлены в таблицу, либо в create table ', либо в alter table add `операторах
  • , поэтому, если вы полагаетесь в порядке столбцов (поскольку вы используете результаты запроса для добавления какой-либо другой структуры данных из положения столбцов) явно перечислите столбцы в том порядке, в котором вы хотите.
12
ответ дан 24 November 2019 в 05:50
поделиться
Другие вопросы по тегам:

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