0

Изменить тип данных поля в sql

ОБЛАСТЬ ПРИМЕНЕНИЯ: SQL Server База данных SQL Azure Azure Synapse Analytics (хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Изменить тип данных столбца в SQL Server SQL Server можно в среде SQL Server Management Studio SQL Server Management Studio или в Transact-SQL Transact-SQL . You can modify the data type of a column in SQL Server SQL Server by using SQL Server Management Studio SQL Server Management Studio or Transact-SQL Transact-SQL .

Изменение типа данных столбца, в котором уже есть данные, может привести к полной потере данных при преобразовании существующих данных в новый тип. Modifying the data type of a column that already contains data can result in the permanent loss of data when the existing data is converted to the new type. Кроме того, код и приложения, которые используют измененный столбец, могут завершиться сбоем. In addition, code and applications that depend on the modified column may fail. Это касается запросов, представлений, хранимых процедур, определяемых пользователем функций и клиентских приложений. These include queries, views, stored procedures, user-defined functions, and client applications. Следует иметь в виду, что возникновение ошибок происходит каскадом. Note that these failures will cascade. Например, может произойти сбой хранимой процедуры, которая вызывает определяемую пользователем функцию, зависящую от изменяемого столбца. For example, a stored procedure that calls a user-defined function that depends on the modified column may fail. Внимательно рассмотрите любые изменения, которые необходимо сделать со столбцом таблицы. Carefully consider any changes you want to make to a column before making it.

В этом разделе In This Topic

Перед началом работы Before you begin:

Изменение типа данных столбца с помощью следующих средств: To modify the data type of a column, using:

Перед началом Before You Begin

безопасность Security

Permissions Permissions

Требуется разрешение ALTER на таблицу. Requires ALTER permission on the table.

Использование среды SQL Server Management Studio Using SQL Server Management Studio

Изменение типа данных столбца To modify the data type of a column

В Обозревателе объектовщелкните правой кнопкой мыши таблицу со столбцами, масштаб которых необходимо изменить, и выберите пункт Конструктор. In Object Explorer, right-click the table with columns for which you want to change the scale and click Design.

Выберите столбец, тип данных которого планируется изменить. Select the column for which you want to modify the data type.

На вкладке Свойства столбца выберите ячейку сетки для свойства Тип данных и выберите новый тип данных из раскрывающегося списка. In the Column Properties tab, click the grid cell for the Data Type property and choose a new data type from the drop-down list.

Читайте также:  Как в вк сделать оффлайн через телефон

В меню Файл выберите пункт Сохранитьtable name. On the File menu, click Savetable name.

При изменении типа данных столбца конструктор таблиц применяет длину типа данных, определенную по умолчанию для выбранного типа данных, даже если была указана другая длина. When you modify the data type of a column, Table Designer applies the default length of the data type you selected, even if you have already specified another. Всегда устанавливайте необходимое значение длины типа данных после того, как был указан тип данных. Always set the data type length for to the desired value after specifying the data type.

При попытке изменения типа данных столбца, связанного с другими таблицами, конструктор таблиц запрашивает подтверждение на внесение изменений и в столбцы других таблиц. If you attempt to modify the data type of a column that relates to other tables, Table Designer asks you to confirm that the change should be made to the columns in the other tables as well.

Использование Transact-SQL Using Transact-SQL

Изменение типа данных столбца To modify the data type of a column

В обозревателе объектовподключитесь к экземпляру компонента Компонент Database Engine Database Engine . In Object Explorer, connect to an instance of Компонент Database Engine Database Engine .

На стандартной панели выберите пункт Создать запрос. On the Standard bar, click New Query.

Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. Copy and paste the following example into the query window and click Execute.

Дополнительные сведения см. в разделе ALTER TABLE (Transact-SQL). For more information, see ALTER TABLE (Transact-SQL)

В этом материале я покажу, как вносятся изменения в таблицы в Microsoft SQL Server, под изменениями здесь подразумевается добавление новых столбцов, удаление или изменение характеристик уже существующих столбцов в таблице. По традиции я покажу, как это делается в графическом конструкторе среды SQL Server Management Studio и, конечно же, как это делается на языке T-SQL.

Напомню, в прошлых статьях я показывал, как создаются базы данных в Microsoft SQL Server, а также как создаются новые таблицы. Сегодня Вы узнаете, как изменить уже существующие таблицы в Microsoft SQL Server, при этом, как было уже отмечено, будет рассмотрено два способа изменения таблиц: первый – с помощью SQL Server Management Studio (SSMS), и второй – с помощью T-SQL.

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

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

Исходные данные для примеров

Сначала давайте определим исходные данные, а точнее таблицу, которую мы будем изменять. Допустим, это будет точно такая же таблица, которую мы использовали в прошлых статьях, а именно наша тестовая таблица Goods – она содержит информацию о товарах и имеет следующие столбцы:

    Product >Если у Вас нет такой таблицы, то создайте ее и добавьте в нее несколько строк данных, например, следующей инструкцией.

Данные мы добавили инструкцией INSERT INTO языка T-SQL.

Примечание! В качестве сервера у меня выступает версия Microsoft SQL Server 2017 Express, как ее установить, можете посмотреть в моей видео-инструкции.

Итак, давайте начнем.

Читайте также:  Бюджетный xiaomi с хорошей камерой

Изменение таблиц в конструкторе SQL Server Management Studio

Сначала я покажу, как изменяются таблицы с помощью графического интерфейса SQL Server Management Studio, а изменяются они точно так же, как и создаются, с помощью того же самого конструктора.

Чтобы открыть конструктор таблиц в среде SQL Server Management Studio, необходимо в обозревателе объектов найти нужную таблицу и щелкнуть по ней правой кнопкой мыши, и выбрать пункт «Проект». Увидеть список таблиц можно в контейнере «Базы данных -> Нужная база данных -> Таблицы».

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

Важно! При работе в конструкторе с таблицей, в которой есть данные, обязательно стоит учитывать один очень важный момент, большинство изменений внести не получится, например, изменить свойства столбцов. Это связано с тем, что по умолчанию в конструкторе «Запрещено сохранение изменений, требующих повторного создания таблицы», именно так и называется параметр, который по умолчанию включён, за счет чего все соответствующие изменения будут блокироваться и, при попытке сохранить такие изменения, Вы будете получать, например, ошибки следующего характера

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

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

Как работать с конструктором, я думаю, понятно, например, для добавления нового столбца просто пишем название столбца в новую строку, выбираем тип данных и указываем признак, может ли данный столбец хранить значения NULL. Для сохранения изменений нажимаем сочетание клавиш «Ctrl+S» или на панели инструментов нажимаем кнопку «Сохранить» (также кнопка «сохранить» доступна и в меню «Файл», и в контекстном меню самой вкладки конструктора).

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

Важно!

Во всех случаях, т.е. не важно с помощью конструктора или с помощью языка T-SQL, когда Вы будете вносить изменения в таблицы, в которых уже есть данные, важно понимать и знать, как эти изменения отразятся на существующих данных, и можно ли вообще применить эти изменения к данным.

Например, изменить тип данных можно, только если он явно преобразовывается без потери данных или в столбце нет данных вообще. Допустим, если в столбце с типом данных VARCHAR(100) есть данные, при этом максимальная длина фактических данных в столбце, к примеру, 80 символов, то изменить тип данных, без потери данных можно только в сторону увеличения или уменьшения до 80 символов (VARCHAR(80)).

Также если в столбце есть данные, при этом он может принимать значение NULL, а Вы хотите сделать его обязательным, т.е. задать свойство NOT NULL, Вам сначала нужно проставить всем записям, в которых есть NULL, значение, например, то, которое будет использоваться по умолчанию, или уже более детально провести анализ для корректной простановки значений.

Еще стоит отметить, что даже просто добавить новый столбец, который не должен принимать значения NULL, не получится, если в таблице уже есть записи, в таких случаях нужно сначала добавить столбец с возможностью принятия значения NULL, потом заполнить его данными, и уже потом обновить данный параметр, т.е. указать NOT NULL.

Читайте также:  Как восстановить данные с компьютера после удаления

Изменение таблиц в Microsoft SQL Server на языке T-SQL (ALTER TABLE)

Теперь давайте я покажу, как изменять таблицы в Microsoft SQL Server на T-SQL. Все изменения в таблицы вносятся с помощью инструкции ALTER TABLE. Для начала давайте рассмотрим упрощённый синтаксис инструкции ALTER TABLE, чтобы Вы лучше понимали структуру тех запросов, которые мы будем рассматривать далее в примерах.

Упрощенный синтаксис инструкции ALTER TABLE

Добавление нового столбца в таблицу на T-SQL

Чтобы добавить новый столбец в таблицу, мы пишем инструкцию ALTER TABLE с параметром ADD, указываем название нового столбца (в нашем случае ProductDescription, т.е. описание товара), его тип данных и возможность принятия значения NULL (как было уже отмечено ранее, если в таблице есть строки, то сначала столбец должен принимать значения NULL).

Удаление столбца из таблицы на T-SQL

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

Задаем свойство NOT NULL для столбца на T-SQL

Если у Вас возникла необходимость сделать столбец обязательным, т.е. задать свойство NOT NULL для столбца, то для этого необходимо использовать параметр ALTER COLUMN, но обязательно помним о том, что в столбце уже должны быть заполнены все строки, т.е. отсутствовать значения NULL.

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

Изменяем тип данных столбца на T-SQL

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

Допустим, у нас возникла необходимость увеличить длину строки для хранения наименования товара (например, до 200 символов).

Видео-инструкция по изменению таблиц в Microsoft SQL Server

У меня на этом все, надеюсь, материал был Вам полезен, пока!

Я хочу изменить тип данных нескольких столбцов с float на int. Какой самый простой способ сделать это?

Пока нет данных для беспокойства.

7 ответов

Это изменит тип данных данного столбца

В зависимости от того, сколько столбцов вы хотите изменить, лучше всего сгенерировать скрипт или использовать какой-нибудь клиентский графический интерфейс mysql

Вы также можете использовать это:

Если вы хотите изменить все столбцы определенного типа на другой тип, вы можете сгенерировать запросы, используя такой запрос:

Например, если вы хотите изменить столбцы с tinyint(4) на bit(1) , запустите его так:

и получите вывод наподобие этого:

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

Пример:

Чтобы изменить тип данных столбца, необходимо изменить . метод и изменить метод

Чтобы изменить имя поля, также используйте метод change

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

Это также работает для MariaDB (тестированная версия 10.2)

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *