Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
Alter table? 11.03.11 00:55 Число просмотров: 2712
Автор: Den <Денис Т.> Статус: The Elderman
|
|
<programming>
|
[Access SQL] как переименовать поле таблицы? А то очень не хочется извращаться. 10.03.11 23:17
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
|
В мускуле это выглядит, например, так: 11.03.11 11:16
Автор: Fighter <Vladimir> Статус: Elderman Отредактировано 11.03.11 11:26 Количество правок: 1
|
В мускуле это выглядит, например, так:
ALTER TABLE `vr` CHANGE `log` `log1` VARCHAR( 64 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
Только я не помню, Аксес ALTER TABLE понимает или нет.
|
| |
Должно поддерживать, ибо alter лежит ещё в стандарте ANSI SQL 92, может быть и ранее. 11.03.11 16:32
Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 11.03.11 16:36 Количество правок: 4
|
разделы 11.10 <alter table statement>, 11.12 <alter column definition>, ну и далее.
sql1992
|
| | |
Сразу трем топикам. 13.03.11 12:10
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 13.03.11 12:11 Количество правок: 1
|
Может делаю что не так, но перепробовал разные комбинации.
ALTER TABLE Table1 ALTER COLUMN FIELD1 FIELD2 TEXT(25);
---
Какой бы ни писал тип "TEXT", "CHAR", ... ругается на тип. Хотя, если убрать FIELD2, то тип меняет. Названия полей в кавычки брал. Слово "SET" между полями писал. То, что майэскуэль это делать точно умеет, знаю. В инете поиск ничего путевого не дает. В хелпе Аксесе этого нет. Ниже кусок Аксесовского хелпа. Похоже, что то, что возможно указать при добавлении поля (ИМЯ, ТИП, РАЗМЕР) невозможно указать при изменеии. То есть ИМЯ относится к имени самого поля, а остальное воспринимается как новые параметры (только ТИП и РАЗМЕР).
Синтаксис
ALTER TABLE таблица {ADD {COLUMN тип поля[(размер)] [NOT NULL] [CONSTRAINT индекс] |
ALTER COLUMN тип поля[(размер)] |
CONSTRAINT составнойИндекс} |
DROP {COLUMN поле I CONSTRAINT имяИндекса} }
---
|
| | | |
Может нафиг этот запрос? Просто зайти в Аксесе в нужную таблицу и переименоавть ) 14.03.11 00:46
Автор: Fighter <Vladimir> Статус: Elderman
|
|
| | | |
так: 13.03.11 16:56
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 13.03.11 16:58 Количество правок: 2
|
так:
ALTER TABLE Table1
ALTER COLUMN FIELD1 char(25)
ALTER COLUMN FIELD2 char(25); ---
В Access или в SQL Manager'е ты можешь делать это визуально - в конструкторе таблицы.
|
| | | | |
Ошибка синтаксиса и подсвечивает alter на третьей строке. 14.03.11 00:32
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 14.03.11 00:34 Количество правок: 2
|
> так:
> ALTER TABLE Table1
> ALTER COLUMN FIELD1 char(25)
> ALTER COLUMN FIELD2 char(25); ---
Ошибка синтаксиса и подсвечивает ALTER на третьей строке.
Зачем во второй строке указывать тип и размерность переименовываемого поля FIELD1 и зачем это делать в третьей строке?
> В Access или в SQL Manager'е ты можешь делать это визуально > - в конструкторе таблицы.
Задача: написать програмку, которая будет обрабатывать огроменйшую кучу всего посредством нажатия на одну кнопку. Поди, объясни этим клеркам, что надо куда то лезть и что-то где-то переименовывать.
"Ноги" этой задачи растут из процеса импорта данных, при котором либо именам полей присваивается абракадабра их первой строки, либо "F1", "F2", ..., "FN". К тому же есть готовые запросы-импортировщики. Просто раздать полям нужные имена, и дальше все, как по маслу. Перекинуть таблицу в другую с правильными именами полей, зачистив первую строку, проблема не большая, но, во первых, хочется красиво, а, самое гдавное, во вторых, хочется понять, не уже ли в Аксесе нет такого функционала!
К стати, тут еще вопросик маленький возник: В VB цикле получаются некоторые данные. Требуется запизивать их в нужные поля. Как это лучше сделать?
|
| | | | | |
Не знаю, как Аксес к этому отнесется (мелкомягкие всегда... 14.03.11 03:08
Автор: Fighter <Vladimir> Статус: Elderman Отредактировано 14.03.11 03:10 Количество правок: 2
|
> К стати, тут еще вопросик маленький возник: В VB цикле > получаются некоторые данные. Требуется запизивать их в > нужные поля. Как это лучше сделать? Не знаю, как Аксес к этому отнесется (мелкомягкие всегда стремились как можно меньше придерживаться стандартов и вообще ;) ), но в других СУБД лучше всего в цикле сгенерировать многострочный запрос типа:
INSERT INTO `table_name` (`field_1`, `field_2`, ..., `field_n`) VALUES
('val_1','val_2', ..., 'val_n'),
...
('val_i','val_j', ..., 'val_k');
---
а потом отправить его в СУБД. Если цикл бесконечный - отправлять периодически, после накопления нужного количества строк, и обнулять его после отправки очередной порции.
|
| | | | | | |
Блин, сейчас писал уточнения к задаче и, похоже, пришла красивая мысль. Завтра попробую. 14.03.11 23:41
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
| | | | | |
У разных rdbms синтаксис sql может немного различаться. 14.03.11 01:54
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 14.03.11 10:18 Количество правок: 1
|
> Ошибка синтаксиса и подсвечивает ALTER на третьей строке. > Зачем во второй строке указывать тип и размерность > переименовываемого поля FIELD1 и зачем это делать в третьей > строке?
кажись, я запятую пропустил.
попробуй следующие варианты:
ALTER TABLE Table1
ALTER COLUMN FIELD1 char(25),
ALTER COLUMN FIELD2 char(25); ---
или
ALTER TABLE Table1
ALTER COLUMN FIELD1 char(25),
FIELD2 char(25); ---
если используете MSSQL, то синтаксис такой:
http://msdn.microsoft.com/ru-ru/library/ms190273.aspx
> Задача: написать програмку, которая будет обрабатывать > огроменйшую кучу всего посредством нажатия на одну кнопку. > Поди, объясни этим клеркам, что надо куда то лезть и что-то > где-то переименовывать. > "Ноги" этой задачи растут из процеса импорта данных, при > котором либо именам полей присваивается абракадабра их > первой строки, либо "F1", "F2", ..., "FN". К тому же есть > готовые запросы-импортировщики. Просто раздать полям нужные > имена, и дальше все, как по маслу. Перекинуть таблицу в > другую с правильными именами полей, зачистив первую строку, > проблема не большая, но, во первых, хочется красиво, а, > самое гдавное, во вторых, хочется понять, не уже ли в > Аксесе нет такого функционала!
MS Access v14 предлагает достаточно широкие средства автоматизации, вплоть до сохранения и воспроизведения шагов импорта/экспорта и связывания из разных источников данных (ODBC, форматированый текст, XML, некоторые форматы MS Office)
> К стати, тут еще вопросик маленький возник: В VB цикле > получаются некоторые данные. Требуется запизивать их в > нужные поля. Как это лучше сделать?
сори, не телепат. ;)
|
| | | | | | |
Ругается на запятую. 14.03.11 23:28
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> кажись, я запятую пропустил. > попробуй следующие варианты: > ALTER TABLE Table1 > ALTER COLUMN FIELD1 char(25),
> ALTER COLUMN FIELD2 char(25); ---
> или > ALTER TABLE Table1 > ALTER COLUMN FIELD1 char(25),
> FIELD2 char(25); ---
Ругается на запятую.
> если используете MSSQL, то синтаксис такой: > http://msdn.microsoft.com/ru-ru/library/ms190273.aspx
Хороший хелп, все особенности рассмотрены, есть и про изменение типа и размерности, но про зменение имени нет ничего.
Я там еще порылся, потом в родном хелпе - есть переименовывание таблиц, запросов, всяких других объектов, но про поля нет ничего. Грустно. Ну нет, так нет, не так уж сильно придется извратнуться.
|
| | | | | | | |
значит делай по отдельности 15.03.11 03:53
Автор: Den <Денис Т.> Статус: The Elderman
|
|
|
Alter table? 11.03.11 00:55
Автор: Den <Денис Т.> Статус: The Elderman
|
|
|
|