Как исправить тип данных в уже созданной таблице

В этой статье объясняется, как изменить тип данных для поля таблицы в базе данных Access.

В этой статье

  • Общие сведения о типах данных

  • Изменение типа данных

  • Ограничения на изменение типов данных

Общие сведения о типах данных

При создании и проектировании базы данных нужно спланировать одну или несколько таблиц, спланировать поля (столбцы) для каждой таблицы, а также тип данных для каждого поля. Например, если вам нужно хранить даты и время, для поля задается тип данных «Дата/время». Если вам нужно сохранить имена и адреса, у вас одно или несколько полей с типом данных «Текст» и так далее.

Access поддерживает множество различных типов данных, каждый из которых имеет свое назначение. Полный список всех поддерживаемых типов данных в разных версиях Access см. в статьях Типы данных для баз данных Access для настольных компьютеров и Введение в использование типов данных и свойств полей.

Дополнительные сведения о создании и использовании полей подпапок см. в статье «Создание и удаление многоценного поля».

Напоследок нужно заметить, что типы данных обеспечивают базовую проверку данных, так как они гарантируют, что пользователи будут вводить данные правильного типа. Например, невозможно ввести текст в поле, принимающее только числа.

Изменение типа данных

Перед выполнением этих действий учтите, что изменение типа данных может привести к удалению (усечению) части данных в поле, а в некоторых случаях и всех данных. Сведения о том, как Access изменяет данные при выборе другого типа, см. в разделе Ограничения на изменения типов данных далее в этой статье.

Примечание: В Access вы можете задать тип данных для поля как в режиме таблицы, так и в Конструкторе. В этом разделе описываются оба метода. При настройке типа данных в Конструкторе будет доступен еще один вариант (Мастер подстановки). Он фактически не является типом данных. Мастер подстановки используется для создания полей подстановки, которые связывают поля внешних ключей с другими таблицами. По умолчанию Access задает для полей подстановки тип данных «Число».

Изменение типа данных в режиме таблицы

  1. В области навигации найдите дважды щелкните таблицу, которую вы хотите изменить.

    Таблица откроется в режиме таблицы.

  2. Выберите поле (столбец), которое вы хотите изменить.

  3. На вкладке Поля в группе Свойства щелкните стрелку в раскрывающемся списке рядом с полем Тип данных, а затем выберите тип данных. 

  4. Сохраните изменения.

Изменение типов данных в Конструкторе

  1. Если таблица открыта в режиме таблицы, щелкните правой кнопкой мыши ее вкладку документа и выберите пункт Конструктор.

    -или-

    Если таблица не открыта, в области навигации щелкните правой кнопкой мыши таблицу, которую вы хотите изменить, и в контекстном меню выберите пункт Конструктор.

  2. Найдите поле, которое требуется изменить, и выберите новый тип данных из списка в столбце Тип данных.

  3. Сохраните изменения.

К началу страницы

Ограничения на изменение типов данных

Как правило, тип данных можно менять для всех полей, за исключением следующих:

  • числовые поля с включенным свойством Код репликации;

  • поля объектов OLE;

  • поля вложений.

Кроме того, большинство типов данных можно изменять, когда поле содержит данные. Однако в зависимости от того, какой тип данных был задан изначально и какой тип данных вы хотите использовать, Access может удалить некоторые данные или запретить преобразование типа.

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

Конечный тип данных

Преобразуемый тип данных

Изменения и ограничения

Текстовый

Поле MEMO

255 первых знаков остаются, остальные удаляются.

Числовой

Нет ограничений.

Дата и время

Для даты и времени нет ограничений.

Не допускается для расширенного даты и времени.

Денежный

Нет ограничений.

Счетчик

Нет ограничений.

Логический

Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет».

Гиперссылка

Access обрезает ссылки длиннее 255 знаков.

Поле MEMO

Текстовый

Нет ограничений.

Числовой

Нет ограничений.

Дата и время

Для даты и времени нет ограничений.

Не допускается для расширенного даты и времени.

Денежный

Нет ограничений.

Счетчик

Нет ограничений.

Логический

Значение -1 («Да» в логическом поле) преобразуется в «Да». Значение 0 («Нет» в логическом поле) преобразуется в «Нет».

Гиперссылка

Нет ограничений.

Числовой

Текст

Текст может включать только числа, допустимые денежные значения и разделители целой и дробной частей. Число знаков в поле с типом данных «Текст» не должно превышать соответствующий размер поля, заданный для типа данных «Число».

Подробнее о размерах числовых полей читайте в статье Добавление, создание и удаление поля, хранящего числовые значения.

Поле MEMO

Поле МЕМО должно содержать только текст и допустимые разделители целой и дробной частей. Число знаков в поле МЕМО не должно превышать соответствующий размер поля, заданный для типа данных «Числовой».

Подробнее о размерах числовых полей читайте в статье Добавление, создание и удаление поля, хранящего числовые значения.

Числовой (с другим размером поля или другой точностью)

Значения не должны быть больше или меньше, чем размер нового поля. Из-за изменения точности Access может округлить некоторые значения.

Дата и время

Дата и время:

Возможность преобразования даты и времени зависит от размера числового поля. Следует помнить, что в Access все даты хранятся как порядковые номера, а значения даты и времени — как числа двойной точности с плавающей запятой.

Дата 30 декабря 1899 г. имеет порядковый номер 0. Даты, не входящие в интервал от 18 апреля 1899 г. до 11 сентября 1900 г., превышают размер поля «Байт». Даты, не входящие в интервал от 13 апреля 1810 г. до 16 сентября 1989 г., превышают размер поля «Целое».

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

Дополнительные сведения о серийных датах и о том, как Access использует и хранит значения дат, см. в статье «Форматирование поля даты и времени».

Дата/время с продлением:

Запрещено.

Денежный

Значения не должны выходить за верхний и нижний пределы размера, заданного для поля. Например, поле с типом данных «Денежный» можно преобразовать в поле «Целое» только в том случае, если его значение больше 255, но не превышает 32 767.

Счетчик

Значения не должны выходить за пределы размера, заданного для поля.

Логический

Значения «Да» преобразуются в -1. Значения «Нет» преобразуются в 0.

Гиперссылка

Неприменимо.

Дата/время

Текст

Исходный текст должен быть распознаемой датой или сочетанием даты и времени. Например, 18-янв-2006.

Поле MEMO

Исходный текст должен быть распознаемой датой или сочетанием даты и времени. Например, 18-янв-2006.

Число

Значение должно находиться в интервале от -657434 до 2958465,99998843.

Date/Time Extended

Нет ограничений.

Денежный

Значение должно находиться в интервале от -657434 ₽ до 2958465,9999 ₽.

Счетчик

Значение должно находиться в интервале от -657434 до 2958466.

Логический

Значение -1 («Да») преобразуется в 29 декабря 1899 г. Значение 0 («Нет») преобразуется в полночь (00:00:00).

Гиперссылка

Неприменимо.

Date/Time Extended

Текст

Запрещено.

МЕМО

Запрещено.

Число.

Запрещено.

Date/Time

Дробные секунды теряются, и если год находится за пределами диапазона, поддерживаемого значением даты и времени, значение удаляется. Дополнительные сведения см. в типе данных «Дата/время».

Валюта

Запрещено.

Счетчик

Запрещено.

Логический

Запрещено.

Гиперссылка

Неприменимо.

Денежный

Текстовый

Текст должен состоять только из чисел и допустимых разделителей.

Поле MEMO

Текст должен состоять только из чисел и допустимых разделителей.

Число

Нет ограничений.

Дата и время

Дата/время: нет ограничений, но Access может округить значение.

Дата/время: не разрешено.

Счетчик

Нет ограничений.

Логический

Значение -1 («Да») преобразуется в 1 ₽. Значение 0 («Нет») преобразуется в 0 ₽.

Гиперссылка

Неприменимо.

Счетчик

Текстовый

Не допускается, если поле с типом данных «Счетчик» является первичным ключом.

Поле MEMO

Не допускается, если поле с типом данных «Счетчик» является первичным ключом.

Число

Не допускается, если поле с типом данных «Счетчик» является первичным ключом.

Дата и время

Дата/время: не допускается, если поле «Автономер» является первичным ключом.

Дата/время: не разрешено.

Денежный

Не допускается, если поле с типом данных «Счетчик» является первичным ключом.

Логический

Не допускается, если поле с типом данных «Счетчик» является первичным ключом.

Гиперссылка

Неприменимо.

Логический

Текстовый

Исходный текст должен содержать только значения «Да», «Нет», «Истина», «Ложь», «Вкл» и «Выкл».

Поле MEMO

Исходный текст должен содержать только значения «Да», «Нет», «Истина», «Ложь», «Вкл» и «Выкл».

Числовой

Нуль и пустое значение преобразуются в значение «Нет», все остальные значения преобразуются в значение «Да».

Дата и время

Дата/время: значение Null или 00:00:00 преобразуется в «Нет», все остальные значения преобразуется в значение «Да».

Дата/время: не разрешено.

Денежный

Нули и значения NULL преобразуются в значение «Нет», все остальные значения преобразуются в значение «Да».

Счетчик

Access преобразует все значения в «Да».

Гиперссылка

Неприменимо.

Гиперссылка

Текст

Если исходный текст содержит допустимый веб-адрес, например adatum.com, www.adatum.com или http://www.adatum.com, он преобразуется в гиперссылку. Access пытается преобразовать и другие значения: текст становится подчеркнутым, а указатель мыши изменяется при наведении на ссылку, но эти ссылки не работают. Текст может содержать любое допустимое обозначение веб-протокола: http://, gopher://, telnet://, ftp://, wais:// и т. д.

Поле MEMO

См. предыдущую запись. Действуют те же ограничения.

Числовой

Не допускается, если поле с типом данных «Число» используется в связи. Если исходное значение представлено в форме допустимого IP-адреса (четыре тройки цифр, разделенных точками: nnn.nnn.nnn.nnn), а числа соответствуют веб-адресу, в результате преобразования получается действительная ссылка. В противном случае Access добавляет префикс http:// в начало каждого значения, а итоговые ссылки не работают.

Дата/время

В начало каждого адреса добавляется префикс http://, но итоговые ссылки практически никогда не работают.

Денежный

В начало каждого значения добавляется префикс http://, но, как и в случае с датами, итоговые ссылки практически никогда не работают.

Счетчик

Не допускается, если поле «Счетчик» используется в связи. В начало каждого значения добавляется префикс http://, но итоговые ссылки практически никогда не работают.

Логический

Access преобразует все значения «Да» в -1 и все значения «Нет» в 0 и http:// в начало каждого значения. Итоги не работают.

К началу страницы

SQL-запрос для изменения типа столбца в базе данных SQL Server

Мы можем использовать оператор ALTER TABLE ALTER COLUMN для изменения типа столбца в таблице. Использует следующий синтаксис:

ALTER TABLE [tbl_name] ALTER COLUMN [col_name] [DATA_TYPE]

Здесь

  • tbl_name: задает имя таблицы.
  • col_name: задает имя столбца, тип которого мы хотим изменить. col_name должно быть указано после ключевых слов ALTER COLUMN.
  • DATA_TYPE: задает новый тип данных и длину столбца.

В целях демонстрации я создал таблицу с именем tblStudent.

CREATE TABLE [dbo].[tblstudent]
(
[id] [INT] IDENTITY(1, 1) NOT NULL,
[student_code] [VARCHAR](20) NOT NULL,
[student_firstname] [VARCHAR](250) NOT NULL,
[student_lastname] [VARCHAR](10) NOT NULL,
[address] [VARCHAR](max) NULL,
[city_code] [VARCHAR](20) NOT NULL,
[school_code] [VARCHAR](20) NULL,
[admissiondate] [DATETIME] NULL,
CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED ( [id] ASC )
)

Предположим, что вы хотите изменить тип данных [address] с varchar(max) на nvarchar(1500). Выполните следующий запрос для изменения типа столбца.

Alter table tblstudent alter column address nvarchar(1500)

Проверим изменения с помощью следующего скрипта.

use StudentDB
go
select TABLE_SCHEMA,TABLE_NAME,COLUMN_NAME,DATA_TYPE, CHARACTER_MAXIMUM_LENGTH from INFORMATION_SCHEMA.COLUMNS
where table_name='tblStudent'

Видно, что тип данных столбца изменился.

Важные замечания:

  1. При уменьшении размера столбца SQL Server проверит данные в таблице и, если данные превышают новую длину, вернет предупреждение и прервет выполнение оператора.
  2. При изменении типа данных nvarchar на varchar, если столбец содержит строку Юникод, то SQL Server возвращает ошибку и прерывает оператор.
  3. В отличие от MySQL изменение типа данных нескольких столбцов не допускается.
  4. Вы не можете добавить
    а. ограничение NOT NULL, если столбец содержит NULL-значения;
    б. ограничение UNIQUE, если в столбце имеются дубликаты.

Запрос SQL для изменения типа столбца в MySQL

Для изменения типа данных столбца мы можем использовать оператор ALTER TABLE MODIFY COLUMN. Синтаксис изменения типа данных столбца имеет следующий вид:

ALTER TABLE [tbl_name] MODIFY COLUMN [col_name_1] [DATA_TYPE], 
MODIFY [col_name_2] [data_type],
MODIFY [col_name_3] [data_type]

Здесь

  • Tbl_name: задает имя таблицы, содержащая столбец, который мы хотим изменить.
  • Col_name: задает имя столбца, тип которого мы хотим изменить. Col_name должно быть указано после ключевых слов MODIFY COLUMN. Мы можем изменить тип данных нескольких столбцов. При изменении типа данных нескольких столбцов, столбцы разделяются запятой (,).
  • Datatype: задает новый тип данных и длину столбца. Тип данных должен указываться после имени столбца.

В целях демонстрации я создал таблицу с именем tblactor в базе данных DemoDatabase. Вот код, который создает таблицу.

create table tblactor
(
actor_id int,
first_name varchar(500),
first_name varchar(500),
address varchar(500),
CityID int,
lastupdate datetime
)

Рассмотрим несколько примеров.

Пример 1: Запрос для изменения типа данных одного столбца

Мы хотим изменить тип столбца address с varchar(500) на тип данных TEXT. Выполните следующий запрос для изменения типа данных.

mysql> ALTER TABLE tblActor MODIFY address TEXT
Для проверки изменений выполните следующий запрос:

mysql> describe tblactor

Как можно увидеть, тип данных столбца address был изменен на TEXT.

Пример 2: SQL-запрос для изменения типа данных нескольких столбцов

Мы можем изменить тип данных нескольких столбцов в таблице. В нашем примере мы хотим изменить тип столбцов first_name и last_name. Новым типом данных столбцов становится TINYTEXT.

mysql> ALTER TABLE tblActor MODIFY first_name TINYTEXT, modify last_name TINYTEXT;
Выполните следующий запрос, чтобы проверить изменения:

mysql> describe tblActor

Как видно, тип данных столбцов first_name и last_name изменился на TINYTEXT.

Пример 3: Переименование столбца в MySQL

Чтобы переименовать столбцы, мы должны использовать оператор ALTER TABLE CHANGE COLUMN. Предположим, что вы хотите переименовать столбец CityID в CityCode; вы должны выполнить следующий запрос.

mysql> ALTER TABLE tblActor CHANGE COLUMN CityID CityCode int
Выполните команду describe, чтобы увидеть изменения структуры таблицы.

Видно, что имя столбца изменилось.

Запрос SQL для изменения типа столбца в базе данных PostgreSQL

Мы можем использовать оператор ALTER TABLE ALTER COLUMN для изменения типа данных столбца. Синтаксис изменения типа данных столбца:

ALTER TABLE [tbl_name] ALTER COLUMN [col_name_1] TYPE [data_type], 
ALTER COLUMN [col_name_2] TYPE [data_type],
ALTER COLUMN [col_name_3] TYPE [data_type]

Здесь

  • Tbl_name: задает имя таблицы, содержащая столбец, который вы хотите изменить.
  • Col_name: задает имя столбца, тип которого мы хотим изменить. Col_name должно быть указано после ключевых слов ALTER COLUMN. Мы можем изменить тип данных нескольких столбцов.
  • Data_type: задает новый тип данных и длину столбца. Тип данных должен быть указан после ключевого слова TYPE.

В целях демонстрации я создал таблицу с именем tblmovies в базе данных DemoDatabase. Вот код для создания этой таблицы:

create table tblmovies
(
movie_id int,
Movie_Title varchar(500),
Movie_director TEXT,
Movie_Producer TEXT,
duraion int,
Certificate varchar(5),
rent numeric(10,2)
)

Теперь рассмотрим несколько примеров.

Пример 1: Запрос SQL для изменения типа данных одного столбца

Мы хотим изменить тип столбца movie_id с типа данных int4 на int8. Для изменения типа данных выполните следующий запрос.

ALTER TABLE tblmovies ALTER COLUMN movie_id TYPE BIGINT

Для проверки изменений выполните следующий запрос:

SELECT 
table_catalog,
table_name,
column_name,
udt_name,
character_maximum_length
FROM
information_schema.columns
WHERE
table_name = 'tblmovies';

Как видно, тип данных столбца movie_id стал int8.

Пример 2: Запрос SQL для изменения типа данных нескольких столбцов

Мы можем изменить тип данных сразу нескольких столбцов таблицы. В нашем примере мы хотим изменить тип столбцов movie_title и movie_producer. Новым типом данных для столбца movie_title становится TEXT, а для movie_producer — varchar(2000).

ALTER TABLE tblmovies ALTER COLUMN movie_title TYPE text, ALTER COLUMN movie_producer TYPE varchar(2000);

Выполните следующий запрос для проверки изменений:

SELECT 
table_catalog,
table_name,
column_name,
udt_name,
character_maximum_length
FROM
information_schema.columns
WHERE
table_name = 'tblmovies';

Как видно, типом данных столбца movie_title является TEXT, а movie_producer — varchar(2000).

Изменение типа данных и размера поля

Для изменения типа данных нужно щелкнуть
по ячейке типа данных изменяемого поля.
Затем щелкнуть по кнопке справа,
открывающей список возможных типов
данных, и выбрать новый тип данных. С
некоторыми ограничениями Access может
успешно преобразовать любой тип данных
(кроме типа поле объекта OLE). Например,
при преобразовании из текстового в
числовой формат поле должно содержать
только цифры и допустимые разделители.
Для текстового и числового поля задается
его размер. Установленный размер поля
можно затем изменить. Если он будет
уменьшен, то Access выдаст предупреждающее
сообщение о возможной потере некоторых
данных. Если вы подтвердите свое желание
сохранить сделанные изменения в
определении таблицы, то операция будет
выполнена, но это может повлечь за собой
ошибки в преобразовании данных и их
потерю. Поэтому перед такой операцией
имеет смысл на всякий случай создать
копию таблицы.

    1. Ввод и редактирование данных в таблице

После создания структуры таблицы можно
приступать к ее заполнению. Заметим
сразу, что изменять данные в таблице
можно в любой момент, поэтому не нужно
заранее заботиться о полноте данных,
их последовательности и т.д. Если данных
в таблице еще нет, то при ее открытии
пользователь получает готовый для
заполнения пустой бланк следующей
структуры (см. рис. 4.2).

Рис. 4.2. Ввод данных в пустую таблицу

В первой строке бланка расположены
имена полей таблицы в том порядке, в
котором они были введены при построении
структуры таблицы. Пустая строка
предназначена для ввода новой (в данном
случае первой) записи в таблицу. Крайний
слева столбец бланка является индикаторным.
В нем отражается информация о состоянии
записей таблицы, а находящийся в нем в
данный момент значок означает текущую
запись. Этот столбец также используется
для маркировки записей. Щелкнув в нем,
можно выделить всю запись целиком. При
вводе данных в поле пользуются обычными
правилами корректировки данных. В каждый
момент времени вставка данных происходит
в поле, в котором находится курсор. После
ввода данных в поле можно перейти к
следующему полю записи одним из следующих
способов (при соответствующей настройке
параметров Access): нажав клавишу перемещения
курсора; нажав клавишу Tab; нажав
клавишуEnter.Access автоматически
сохраняет на диске введенную запись. В
дальнейшем любую из введенных записей
можно редактировать. Если тип введенного
значения не соответствует типу поля
или нарушены условия на значение,
заданные в свойствах поля, то Access не
разрешит выйти из этого поля. Такая
ситуация, например, возникает, если в
поле типаДатавведено значение,
которое Access не может интерпретировать
как дату. В
этом случае можно исправить допущенную
ошибку или отменить ввод нажатием
клавиши
Esc
или комбинации клавиш
Ctrl
+ Z
.

Access также не разрешит перейти к новой
записи, если при вводе в ключевое поле
нарушена уникальность его значений или
не введены данные в поле, требующее
обязательного ввода значения. Нужно
исправить допущенные ошибки или отменить
ввод новой записи двойным нажатием
клавиши Escили комбинации клавишCtrl + Z.

Перемещение по таблице

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

Рис. 4.3. Поле номера записи

окна таблицы находится поле
номера текущей записи (см. рис. 4.3), которое
позволяет быстро перейти к нужной записи
путем указания ее номера. Это поле
содержит несколько кнопок перехода на
первую, последнюю, следующую, предыдущую
и новую запись. Для этой цели можно также
воспользоваться командамиПравка/Перейти,
а затем выбрать нужный пункт открывающегося
подменю.

Редактирование записей в таблице

Таблица в любой момент
доступна для редактирования. Движение
курсора по полям и записям таблицы
осуществляется с помощью отдельных
клавиш или их комбинаций. Чтобы внести
изменения внутри содержимого поля,
нужно перейти в режим редактирования.
Для этого достаточно нажать клавишу F2
или щелкнуть в нужном месте поля мышью.

Отмена изменений

Изменения, внесенные в
содержимое полей текущей записи, можно
отменить с помощью комбинации клавиш
Ctrl+Z,
а также команды Правка/Отменить
ввод или кнопки на панели инструментов
Отменить ввод.
Отмена сделанных изменений остается
возможной и после перехода на другую
запись до начала ее редактирования.

Использование буфера обмена Windows

При добавлении в таблицу
данных, содержащихся в других таблицах
БД, можно воспользоваться стандартным
средством — буфером обмена Windows. При
работе с буфером обмена применяются
стандартные команды
Вырезать,
Копировать
и Вставить,
находящиеся в меню Правка,
а также соответствующие им комбинации
клавиш Ctrl+X, Ctrl+C, Ctrl+V
и кнопки на панели инструментов.

Чтобы добавить в таблицу-приемник записи
из таблицы-источника, нужно выполнить
следующие действия:

1. Выделить копируемые записи в
таблице-источнике и скопировать их в
буфер обмена.

2. Открыть таблицу-приемник и выполнить
команду Правка/Добавитьиз буфера
или выделить последнюю (пустую) запись
и выполнить командуВставить.

3. После проверки возможности осуществления
этой операции Access предложит подтвердить
ее и затем добавит записи в таблицу.
Значения полей строки-источника будут
вставлены в соответствии с порядком
столбцов таблицы-приемника, независимо
от имен полей.

Иногда требуется перенести данные,
содержащиеся в прямоугольном блоке
ячеек одной таблицы, в другую таблицу.
В этом случае нужно выделить блок ячеек
в таблице-источнике и выполнить команду
Копировать. Затем следует выделить
в таблице-приемнике такой же прямоугольный
блок, как и в таблице-источнике, и
выполнить командуВставить. Если
будет выделен блок меньших размеров,
то Access вставит лишь часть данных из
буфера обмена.

В ряде случаев Access отказывается выполнить
операцию вставки данных из буфера обмена
или выполняет ее частично. Перечислим
типичные причины невыполнения этой
операции:

  • таблица-приемник имеет ключевое поле
    или поле с уникальным индексом, и
    осуществление операции приводит к
    нарушению уникальности его значений;

  • таблица-приемник связана с другими
    таблицами и в результате операции
    нарушается целостность связей в БД;

  • сделана попытка вставить содержимое
    поля или полей без указания места их
    назначения;

  • вставка не может быть осуществлена
    из-за несоответствия типов данных
    (вставляется текст в числовое поле),
    нарушения условий на значения полей
    (сделана попытка вставить в текстовое
    поле слишком длинный текст) и т.д.

Невставленные данные Access помещает в
специальную таблицу Ошибки вставки.
После корректировки они могут быть
позднее вставлены в таблицу-приемник.

Буфер обмена можно использовать и при
вставке в поля таблицы данных из других
приложений Windows, например фрагмента
таблицы Excel, текста, подготовленного в
Word, или графического изображения.

Редактирование внешнего вида таблицы

Для изменения порядка следования полей
необходимо сначала выделить поле,
щелкнув мышью на имени поля. Поле (весь
столбец) окажется выделенным. После
этого надо «ухватиться» мышью за имя
поля и перетащить поле на новое место,
удерживая нажатой левую клавишу мыши.

В режиме просмотра таблицы можно также
скрыть показ отдельных столбцов. Для
этого достаточно выбрать столбец
(столбцы), щелкнуть правой клавишей мыши
и из контекстного меню выбрать опцию
Скрыть столбцы.Можно также
использовать командыФормат/Скрыть
столбцы.

Для показа скрытых столбцов нужно
использовать команды Формат/Отобразить
столбцы
.

Иногда при просмотре данных может
понадобиться, чтобы при прокрутке
содержимого таблицы вправо или влево
один или несколько столбцов оставались
на экране. Например, при просмотре
сведений о студентах удобно, чтобы
столбец с фамилией студента не исчезал
с экрана. Для этого нужно выделить один
или несколько (смежных) фиксируемых
столбцов и выполнить команды
Формат/Закрепить столбцы. Для отмены
фиксации столбцов следует выполнить
командыФормат/Освободить все столбцы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

I have SQL Server database and I just realized that I can change the type of one of the columns from int to bool.

How can I do that without losing the data that is already entered into that table?

Raphaël Colantonio's user avatar

asked Feb 27, 2011 at 21:14

Ivan Stoyanov's user avatar

Ivan StoyanovIvan Stoyanov

5,41212 gold badges54 silver badges71 bronze badges

3

You can easily do this using the following command. Any value of 0 will be turned into a 0 (BIT = false), anything else will be turned into 1 (BIT = true).

ALTER TABLE dbo.YourTable
   ALTER COLUMN YourColumnName BIT

The other option would be to create a new column of type BIT, fill it from the old column, and once you’re done, drop the old column and rename the new one to the old name. That way, if something during the conversion goes wrong, you can always go back since you still have all the data..

answered Feb 27, 2011 at 21:18

marc_s's user avatar

marc_smarc_s

728k174 gold badges1325 silver badges1455 bronze badges

3

ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)

Note: if there is a size of columns, just write the size also.

marc_s's user avatar

marc_s

728k174 gold badges1325 silver badges1455 bronze badges

answered Jul 8, 2015 at 3:09

Xyed Xain Haider's user avatar

0

If it is a valid change.

you can change the property.

Tools —> Options —> Designers —> Table and Database designers —> Uncheck —> Prevent saving changes that required table re-creation.

Now you can easily change the column name without recreating the table or losing u r records.

Ajay2707's user avatar

Ajay2707

5,6566 gold badges40 silver badges58 bronze badges

answered Jul 25, 2016 at 6:50

Sathish's user avatar

SathishSathish

1,99914 silver badges13 bronze badges

3

if you use T-SQL(MSSQL); you should try this script:

ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)

if you use MySQL; you should try this script:

ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)

if you use Oracle; you should try this script:

ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)

answered Sep 21, 2017 at 13:32

NullException's user avatar

Why do you think you will lose data? Simply go into Management Studio and change the data type. If the existing value can be converted to bool (bit), it will do that. In other words, if «1» maps to true and «0» maps to false in your original field, you’ll be fine.

answered Feb 27, 2011 at 21:19

Philippe Leybaert's user avatar

Philippe LeybaertPhilippe Leybaert

168k31 gold badges210 silver badges223 bronze badges

6

Go to Tool-Option-designers-Table and Database designers and Uncheck Prevent saving optionenter image description here

answered May 31, 2017 at 6:05

saktiprasad swain's user avatar

1

for me , in sql server 2016, I do it like this

*To rename column Column1 to column2

EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'

*To modify column Type from string to int :( Please be sure that data are in the correct format)

ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2  int; 

answered Jan 10, 2019 at 12:55

MNF's user avatar

MNFMNF

6779 silver badges13 bronze badges

Alter column data type with check type of column :

IF EXISTS(
       SELECT 1
       FROM   sys.columns
       WHERE  NAME = 'YourColumnName'
              AND [object_id] = OBJECT_ID('dbo.YourTable')
              AND TYPE_NAME(system_type_id) = 'int'
   )
    ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT

answered Feb 26, 2019 at 9:13

Ebrahim Sabeti's user avatar

In compact edition will take size automatically for datetime data type i.e. (8) so no need to set size of field and generate error for this operation…

answered Jul 7, 2016 at 7:34

Hardik's user avatar

I can modify the table field’s datatype, with these following query: and also in the Oracle DB,

ALTER TABLE table_name
MODIFY column_name datatype;

answered Jun 20, 2017 at 5:25

Ismayil S's user avatar

Ismayil SIsmayil S

2233 silver badges19 bronze badges

2

Replace datatype without losing data

alter table tablename modify columnn  newdatatype(size);

Max's user avatar

Max

1,0703 gold badges13 silver badges19 bronze badges

answered Mar 21, 2017 at 5:00

user7743491's user avatar

0

0 / 0 / 0

Регистрация: 25.08.2014

Сообщений: 16

1

Как можно изменить тип данных в таблице

28.09.2014, 22:55. Показов 4522. Ответов 5


Студворк — интернет-сервис помощи студентам

Как можно изменить тип данных в таблице? После импорта таблицы тип данных «текстовый», а нужен «Дата». Среда откуда беру не позволяет задать тип данных при выгрузке.
Может есть знатоки — подскажите, можно ли решить макросом access 2010

Добавлено через 1 минуту
как руками в таблице изменить я в курсе.. ищу вариант с автоматизацией. Спасибо!



0



mobile

Эксперт MS Access

26783 / 14462 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

28.09.2014, 23:03

2

Лучший ответ Сообщение было отмечено Wo_0dy как решение

Решение

Можно тип поля таблицы изменить управляющим запросом

SQL
1
ALTER TABLE МояТаблица ALTER COLUMN МоеТекстовоеПоле DATE



1



0 / 0 / 0

Регистрация: 25.08.2014

Сообщений: 16

28.09.2014, 23:26

 [ТС]

3

а если МоеТекстовоеПоле четыре штуки в одной — как правильно запрос исполнить?



0



Эксперт MS Access

26783 / 14462 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

28.09.2014, 23:49

4

Управляющий запрос Alter Table позволяет изменить только одно поле. Для 4-х полей надо использовать 4 запроса. Можно их соединить в функции, которая будет их последовательно запускать или динамически изменять запрос.



1



1302 / 508 / 63

Регистрация: 09.08.2012

Сообщений: 2,056

30.09.2014, 20:43

5

Цитата
Сообщение от mobile
Посмотреть сообщение

4 запроса.

Можно их соединить в функции

mobile, вряд ли в жизни кто-то такое практикует, проще запустить по очереди 4 строки Смена типа редко используется, когда изначально строение базы не расчитали
Wo_0dy,
Зупусти по очереди и не мучайся. Тебе посоветовали все возможные способы, но не мучайся ))



0



Эксперт MS Access

26783 / 14462 / 3192

Регистрация: 28.04.2012

Сообщений: 15,782

01.10.2014, 08:42

6

Цитата
Сообщение от emenem97
Посмотреть сообщение

Смена типа редко используется, когда изначально строение базы не расчитали

Увы, ошибаетесь. При импорте из екселя смена

пола

типа обыденный и нередкий процесс.



0



Понравилась статья? Поделить с друзьями:
  • Как исправить кривой нос ребенку
  • Как найти таксиста uber
  • Как найти сигареты если нет денег
  • Как найти работа в витебске
  • Как найти продолжительность работ в сутки