Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/76: Рейтинг темы: голосов - 76, средняя оценка - 4.53
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
1

Вставка нового столбца в середину таблицы

26.05.2010, 14:26. Просмотров 14027. Ответов 18
Метки нет (Все метки)

Столкнулся с проблемой при работе в "Среде Microsoft SQL Server Management Studio Express"

Пытаюсь создать столбец и вставить его в середину таблицы, но безуспешно, т.к. sql постоянно ругается на синтаксические ошибки, что очень странно, просьба помочь кто знает, заранее Спасибо!

SQL
1
ALTER TABLE mybasa.dbo.test2 ADD New_Column VARCHAR(50) AFTER Name_Event
Вот сам текст об ошибке
Сообщение 102, уровень 15, состояние 1, строка 1
Incorrect syntax near 'AFTER'.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2010, 14:26
Ответы с готовыми решениями:

Вывод значения из одного столбца таблицы в 2 столбца другой таблицы
Есть 2 таблицы. Допустим, первая таблица мед. учреждения Med ( id, name, type...

Вставка столбца с after
Здравствуйте! Подскажите, пожалуйста, как вставить столбец в таблицу на...

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

Вставка ID из одной таблицы в другую!
Здравствуйте, подскажите пожалуйста, как вставить Id из таблицы Клиенты в...

Заполнение столбца таблицы запросом
Добрый вечер! У меня есть таблица Tour, где есть столбцы arrival_flight и...

18
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.05.2010, 16:07 2
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
ALTER TABLE TABLE
{ [ ALTER COLUMN column_name
    { new_data_type [ ( PRECISION [ , scale ] ) ]
        [ COLLATE < collation_name > ]
        [ NULL | NOT NULL ]
        | {ADD | DROP } ROWGUIDCOL }
    ]
    | ADD
        { [ < column_definition > ]
        |  column_name AS computed_column_expression
        } [ ,...n ]
    | [ WITH CHECK | WITH NOCHECK ] ADD
        { < table_constraint > } [ ,...n ]
    | DROP
        { [ CONSTRAINT ] constraint_name
            | COLUMN COLUMN } [ ,...n ]
    | { [ WITH CHECK | WITH NOCHECK ] CHECK | NOCHECK } CONSTRAINT
        { ALL | constraint_name [ ,...n ] }
    | { ENABLE | DISABLE } TRIGGER
        { ALL | trigger_name [ ,...n ] }
}
 
< column_definition > ::=
    { column_namedata_type }
    [ [ DEFAULT constant_expression ] [ WITH VALUES ]
    | [ IDENTITY [ (seed ,INCREMENT ) [ NOT FOR REPLICATION ] ] ]
        ]
    [ ROWGUIDCOL ]
    [ COLLATE < collation_name > ]
    [ < column_constraint > ] [ ...n ]
 
< column_constraint > ::=
    [ CONSTRAINT constraint_name ]
    { [ NULL | NOT NULL ]
        | [ { PRIMARY KEY | UNIQUE }
            [ CLUSTERED | NONCLUSTERED ]
            [ WITH FILLFACTOR =fillfactor ]
            [ ON { filegroup | DEFAULT } ]
            ]
        | [ [ FOREIGN KEY ]
            REFERENCES ref_table [ ( ref_column ) ]
            [ ON DELETE { CASCADE | NO ACTION } ]
            [ ON UPDATE { CASCADE | NO ACTION } ]
            [ NOT FOR REPLICATION ]
            ]
        | CHECK [ NOT FOR REPLICATION ]
            ( logical_expression )
    }
 
< table_constraint > ::=
    [ CONSTRAINT constraint_name ]
    { [ { PRIMARY KEY | UNIQUE }
        [ CLUSTERED | NONCLUSTERED ]
        { (COLUMN [ ,...n ] ) }
        [ WITH FILLFACTOR =fillfactor ]
        [ ON {filegroup | DEFAULT } ]
        ]
        |    FOREIGN KEY
            [ ( COLUMN [ ,...n ] ) ]
            REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
            [ ON DELETE { CASCADE | NO ACTION } ]
            [ ON UPDATE { CASCADE | NO ACTION } ]
            [ NOT FOR REPLICATION ]
        | DEFAULT constant_expression
            [ FOR COLUMN ] [ WITH VALUES ]
        |    CHECK [ NOT FOR REPLICATION ]
            ( search_conditions )
    }
а визуально нельзя отредактировать?
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 16:24  [ТС] 3
Нет визуально вообще не вариант, так как запрос должен выполняться в C# при нажатии на кнопку...такая фигня, пол интернета перелапатил, везде пишут такую конструкцию

SQL
1
ALTER TABLE <table_name> ADD <col_name> <col_type> AFTER <col_name>
но в Среде Microsoft SQL Server Management Studio Express выдается ошибка...как с этим справиться по средствам программного кода я не знаю, поэтому и создал тему.
0
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.05.2010, 16:44 4
а какая разница где создавать столбец в начале или в конце?
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 16:47  [ТС] 5
Ну вот так захотелось человеку, а мне выполнять...Ну сам понимаешь))))
0
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.05.2010, 16:50 6
так не пускай этого человека к базе...сделай ему запрос select в каком нужно порядке и всего делов..
ты выводишь данные как?
наверно
SELECT * FROM table
а ты распиши какой тебе надо порядок и всего делов.
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 16:53  [ТС] 7
Мне нужно изменять не представление данных, а структуру в этом дело)))) Этакая проверка на вшивость, но тем не менее ее сделать нужно.
0
Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
26.05.2010, 16:57 8
Вставь поле,а поверх создай вьюху и в ней определи порядок полей)
0
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.05.2010, 16:57 9
посмотри тут еще
http://msdn.microsoft.com/ru-ru/library/ms190273%28SQL.90%29.aspx
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 16:58  [ТС] 10
Цитата Сообщение от Humanitis Посмотреть сообщение
Вставь поле,а поверх создай вьюху и в ней определи порядок полей)
Ну я же написал выще))))) Нужно поменять структуру данных.
0
Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
26.05.2010, 17:06 11
А ответ "такое невозможно" не устраивает?))
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 17:12  [ТС] 12
Цитата Сообщение от Humanitis Посмотреть сообщение
А ответ "такое невозможно" не устраивает?))
Если бы это было не возможно, то наверное я бы нигде ничего подобного тому что писал выше не нашел)))))



Вот ресурс - http://studio.bashnet.ru/rukovodstvo/mysql/sql/altertable/add.php

А вот четкая вырезка оттуда

Если необходимо, чтобы столбец был вставлен не в начале таблицы, и не в конце, а после определенного столбца, то нужно применить ключевое слово AFTER имя столбца, после которого будет установлен новый столбец:
$sql="ALTER TABLE my_frends ADD adress_2 TEXT AFTER adress_1";
mysql_query($sql);

И это не единственный ресурс на котором я нашел подобное. Так что утверждать что такое невозможно тоже не верно.
0
Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
26.05.2010, 17:16 13
Цитата Сообщение от kraldraav Посмотреть сообщение
Если бы это было не возможно, то наверное я бы нигде ничего подобного тому что писал выше не нашел)))))
А если бы ты искал MS SQL, а не MySQL то не нашел бы
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 17:28  [ТС] 14
Цитата Сообщение от Humanitis Посмотреть сообщение
А если бы ты искал MS SQL, а не MySQL то не нашел бы

Хм...паганый майкрософт
0
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.05.2010, 17:44 15
и чем он поганый?
я смотрел в визуальном редакторе создавалось временная таблица, нужной конфигурации, потом копировались данные со старой таблицы во временную, потом удалялось старая таблица, потом переименовывалась временная таблица на место редактируемой..
попробуй так, если так сильно нужно вставить столбец в таблицу.
0
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 17:57  [ТС] 16
Цитата Сообщение от coderXLsn Посмотреть сообщение
и чем он поганый?
я смотрел в визуальном редакторе создавалось временная таблица, нужной конфигурации, потом копировались данные со старой таблицы во временную, потом удалялось старая таблица, потом переименовывалась временная таблица на место редактируемой..
попробуй так, если так сильно нужно вставить столбец в таблицу.
Ну какбы только это и остается по ходу
0
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
26.05.2010, 20:04 17
а чем тебе этот вариант не устраивает?
1
kraldraav
29 / 29 / 6
Регистрация: 24.04.2010
Сообщений: 145
26.05.2010, 21:53  [ТС] 18
Да устроил)))) прост видать я зациклился не на том)))
0
coderXLsn
49 / 49 / 3
Регистрация: 16.05.2010
Сообщений: 348
27.05.2010, 01:03 19
как всегда на мелочах паримся...
0
27.05.2010, 01:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2010, 01:03

Выбор 5 максимумов из столбца таблицы
Не получается их выбрать. Добавлено через 1 час 1 минуту Разобрался.

Для столбца 1 таблицы т2 не указано имя
Выдаёт ошибку на &quot;as t2&quot;. Что не так? select * from @table1 as...

Разделение одного столбца таблицы на два
Суть заключается в следующем, есть таблицы: сотрудники(ид, фио, долж_ид),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru