Должно поддерживать, ибо alter лежит ещё в стандарте ANSI SQL 92, может быть и ранее.11.03.11 16:32 Число просмотров: 2748 Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 11.03.11 16:36 Количество правок: 4
В мускуле это выглядит, например, так:
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
Может делаю что не так, но перепробовал разные комбинации.
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
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 цикле > получаются некоторые данные. Требуется запизивать их в > нужные поля. Как это лучше сделать? Не знаю, как Аксес к этому отнесется (мелкомягкие всегда стремились как можно меньше придерживаться стандартов и вообще ;) ), но в других СУБД лучше всего в цикле сгенерировать многострочный запрос типа:
---
а потом отправить его в СУБД. Если цикл бесконечный - отправлять периодически, после накопления нужного количества строк, и обнулять его после отправки очередной порции.
Блин, сейчас писал уточнения к задаче и, похоже, пришла красивая мысль. Завтра попробую.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);
> Задача: написать програмку, которая будет обрабатывать > огроменйшую кучу всего посредством нажатия на одну кнопку. > Поди, объясни этим клеркам, что надо куда то лезть и что-то > где-то переименовывать. > "Ноги" этой задачи растут из процеса импорта данных, при > котором либо именам полей присваивается абракадабра их > первой строки, либо "F1", "F2", ..., "FN". К тому же есть > готовые запросы-импортировщики. Просто раздать полям нужные > имена, и дальше все, как по маслу. Перекинуть таблицу в > другую с правильными именами полей, зачистив первую строку, > проблема не большая, но, во первых, хочется красиво, а, > самое гдавное, во вторых, хочется понять, не уже ли в > Аксесе нет такого функционала!
MS Access v14 предлагает достаточно широкие средства автоматизации, вплоть до сохранения и воспроизведения шагов импорта/экспорта и связывания из разных источников данных (ODBC, форматированый текст, XML, некоторые форматы MS Office)
> К стати, тут еще вопросик маленький возник: В VB цикле > получаются некоторые данные. Требуется запизивать их в > нужные поля. Как это лучше сделать?
сори, не телепат. ;)
Ругается на запятую.14.03.11 23:28 Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Хороший хелп, все особенности рассмотрены, есть и про изменение типа и размерности, но про зменение имени нет ничего.
Я там еще порылся, потом в родном хелпе - есть переименовывание таблиц, запросов, всяких других объектов, но про поля нет ничего. Грустно. Ну нет, так нет, не так уж сильно придется извратнуться.
значит делай по отдельности15.03.11 03:53 Автор: Den <Денис Т.> Статус: The Elderman