Запрос на урезание(?)
Можно ли при помощи SQL-запроса уменьшить размер строкового поля так, чтобы содержимое не пропало, а урезалось? Или придется делать это ручками?
Зависит от БД.
Допустим Name текстовое поле длинной 10.
Например если сделать запрос в Акцессе, в конструкторе запросов:
ALTER Table Table1 ALTER column Name text(5). То он успешно пройдет - поле уменьшится, строки обрежутся до 5-и символов.
А если например в MS SQL запрос с помощью Query Analyzer:
ALTER Table Table1 ALTER column [Name] varchar(5). То будет ошибка и ничего не получится. Зато если с помощью Enterprise Manager-а делать. То он автоматически сгенерит скрипт, который успешно изменит размер поля (на самом деле в скрипте просто создается копия старой таблицы с новым форматом поля, вставляются все данные из старой таблицы с учетом преобразования значений старого поля в новый формат, накладываются констрэйнты если есть, старая таблица удаляется, новая - переименовывается в старую). Так что смотри в хелпе своей субд что и как...