Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
den78 Гость
|
Добавлено: Пт Янв 18 2002 22:10 Заголовок сообщения: Добавить столбец |
|
|
Как в MS SQL добавить столбец в таблицу не в конец, а куданить в середину после конкретного столбца. p.s. сорри за глупый может быть вопрос\ тока начал обучаться |
|
Вернуться к началу |
|
|
Евгений Григорьев Гость
|
Добавлено: Пт Янв 18 2002 22:50 Заголовок сообщения: Все равно куда добавлять...+ |
|
|
Столбец в таблицу моджно добавлять куда угодно! Сделай потом из этой таблицы SELECT в нужном тебе порядке. Или поставь поля в форме, где ты эти данные показывашь, в нужном тебе порядке (ведь в конце-концов юзеры не напрямую с SQL сервером работают).
Еще я посоветовал бы книжку по Реляционным СУБД почитать - не, я серьезно. Просто реляционные СУБД это инструмент, принципы которого абсолютно отличаются от принципов привычных прикладных программ, и попытки привязать логику Excel'я к реляционной БД не приведут ни к чему хорошему. |
|
Вернуться к началу |
|
|
den78 Гость
|
Добавлено: Пт Янв 18 2002 23:27 Заголовок сообщения: Re: Все равно куда добавлять...+ |
|
|
Это я знаю. У меня другая ситуация. У меня есть куча уже готовых asp-файлов в которых прописны строки типа Insert into Mytable values (....... а я не подумав удалил один столбец из середины таблицы\ так вот я и подумал что чем переписывать кучу файлов лучше вставить нужный мне столбец обратно\ тока как это сделать я не знаю\ прочитал в двух книжках - а там все просто как сговорились: новый столбец добавляется в конец таблицы\ мож есть чтонить типа ALTER TABLE MyTable ADD COLUMN columnname AFTER previouscolumn |
|
Вернуться к началу |
|
|
Pin
Зарегистрирован: 13.01.2002 Сообщения: 32 Откуда: Magnitogorsk
|
Добавлено: Сб Янв 19 2002 10:12 Заголовок сообщения: Re: Все равно куда добавлять...+ |
|
|
Можно попробовать сначала удалить все столбцы, которые должны идти за этим столбцом, потом добавить нужный столбец и все за ним идущие по-порядку.
Вариант второй: переписать запрос insert как insert into Table1(Col1, Col2, Col4, Col3) values (...), где Col4 по порядку идёт после Col3 |
|
Вернуться к началу |
|
|
den78 Гость
|
Добавлено: Сб Янв 19 2002 11:41 Заголовок сообщения: Re: Все равно куда добавлять...+ |
|
|
>>Можно попробовать сначала удалить все столбцы, которые должны идти за этим столбцом, потом добавить нужный столбец и все за ним идущие по-порядку. >> >>Вариант второй: >>переписать запрос insert как >>insert into Table1(Col1, Col2, Col4, Col3) values (...), где Col4 по порядку идёт после Col3
Первый вариант не пройдет - у меня в таблице гдето 30 столбцов, а вставить надо третьим или четвертым.
Второй вариант мне кажется тоже не покатит\ по-моему он вставляет не столбец а значения полей в некотором порядке |
|
Вернуться к началу |
|
|
Евгений Григорьев Гость
|
Добавлено: Сб Янв 19 2002 12:44 Заголовок сообщения: Пройдет...+ |
|
|
..., в части insert into Table(), в скобках ты ЯВНО указываешь порядок следования столбцов, так, что бы он совпадал с порядком последующих values.
Еще вариант...Ты делаешь простой вид
CREATE VIEW REORDERTABLE SELECT Col1, Col2, Col4, Col3 From TABLE
где столбцы идут в нужном тебе порядке а потом используещь старый INSERT, только вместо имени таблицы вставляешь имя вида
insert into REORDERTABLE values (...)
Но я бы использовал вариант с явным указанием порядка столбцов, т.к. он страхует от последующих изменений. |
|
Вернуться к началу |
|
|
Pin
Зарегистрирован: 13.01.2002 Сообщения: 32 Откуда: Magnitogorsk
|
Добавлено: Сб Янв 19 2002 13:58 Заголовок сообщения: Re: Все равно куда добавлять...+ |
|
|
Насчет первого варианта: есть ещё подвариант - создать новую таблицу, а затем перекачать в неё данные из старой запросов вида insert into NewTable (select ... from OldTable) а затем переименовать новую таблицу в старую. В зависимости от используемой тобой базы скрипты для первого варианта (и для его подварианта) можно сгенерить почти автоматически. Писать придётся немного.
Насчет второго варианта: в insert`е здается только порядок значений, поле должно быть уже добавлено в таблицу. Если запросов немного или они используют немного полей, то это тоже вполне приемлемый вариант. |
|
Вернуться к началу |
|
|
|