sql переименовать поле таблицы
RENAME (Transact-SQL)
Переименовывает созданную пользователем таблицу в Azure Synapse Analytics. Переименовывает созданную пользователем таблицу, столбец в созданной пользователем таблице или базе данных в Система платформы аналитики (PDW).
Чтобы переименовать базу данных в Azure Synapse Analytics, используйте ALTER DATABASE (Azure Synapse Analytics). Чтобы переименовать базу данных в службе базы данных SQL Azure, используйте инструкцию ALTER DATABASE (база данных SQL Azure). Чтобы переименовать базу данных в SQL Server, используйте хранимую процедуру sp_renamedb.
Переименование выделенного пула SQL в Azure Synapse Analytics в настоящее время не поддерживается.
Синтаксис
Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Аргументы
Изменение имени определяемой пользователем таблицы. Указание таблицы для переименования с именем, состоящим из одной, двух или трех частей. Указание имени_новой_таблицы, состоящего из одной части.
RENAME DATABASE [::] [ имя_базы_данных TO новое_имя_базы_данных — применимо к Система платформы аналитики (PDW)
Измените имя пользовательской базы данных с имени_базы_данных на новое_имя_базы_данных. Недопустимо переименование в следующие Система платформы аналитики (PDW)зарезервированные имена баз данных.
Изменение имени столбца в таблице.
Разрешения
Для выполнения этой команды требуется следующее разрешение:
Ограничения
Невозможно переименовать внешние таблицы, индексы и представления
Вы не можете переименовать внешние таблицы, индексы и представления. Вместо переименования можно удалить внешнюю таблицу, индекс или представление и затем создать этот объект повторно с новым именем.
Невозможно переименовать используемую таблицу
Вы не можете переименовать таблицу или базу данных во время использования. Для переименования таблицы требуется монопольная блокировка таблицы. Если таблица используется, может потребоваться завершить сеансы, которые используют таблицу. Для завершения сеанса можно использовать команду KILL. Используйте инструкцию KILL осторожно, так как при завершении сеанса для всей незафиксированной работы будет выполнен откат. Сеансы в Azure Synapse Analytics имеют префикс «SID». Префикс «SID» и номер сеанса необходимо указать при вызове команды KILL. В этом примере мы получаем список активных или неактивных сеансов и затем завершаем сеанс «SID1234».
Ограничения переименования столбцов
Вы не можете переименовать столбец, используемый для распределения таблицы. Кроме того, невозможно переименовывать столбцы во внешней или временной таблице.
Представления не обновляются
При переименовании таблицы обновления имени таблицы в представлениях не происходит. Все представления внутри или вне базы данных, которые ссылаются на предыдущее имя таблицы, станут недействительными. Чтобы устранить эту проблему, обновите представления так, чтобы в них использовалось новое имя базы данных.
При переименовании столбца обновление представлений для их ссылки на это новое имя столбца не выполняется. Представления продолжат отображать старое имя столбца до выполнения инструкции ALTER VIEW. В некоторых случаях представления могут стать недействительными, в результате чего потребуется удалить их и создать заново.
Блокировка
Для переименования таблицы необходима совмещаемая блокировка для объекта базы данных, совмещаемая блокировка для объекта СХЕМЫ и монопольная блокировка таблицы.
Примеры
A. Переименование базы данных
Применимо к только Система платформы аналитики (PDW)
В этом примере мы переименовываем пользовательскую базу данных AdWorks в AdWorks2.
При переименовании таблицы все объекты и свойства, связанные с этой таблицей, обновляются, так чтобы в них использовалось новое имя таблицы. Например, обновляются определения таблиц, индексы, ограничения и разрешения. Представления не обновляются.
Б. Переименование таблицы
Применимо к: Azure Synapse Analytics, Система платформы аналитики (PDW)
В этом примере мы переименовываем таблицу Customer в Customer1.
При переименовании таблицы все объекты и свойства, связанные с этой таблицей, обновляются, так чтобы в них использовалось новое имя таблицы. Например, обновляются определения таблиц, индексы, ограничения и разрешения. Представления не обновляются.
В. Перемещение таблицы в другую схему
Применимо к: Azure Synapse Analytics, Система платформы аналитики (PDW)
Если вы хотите переместить объект в другую схему, используйте инструкцию ALTER SCHEMA. Например, следующая инструкция перемещает элемент таблицы из схемы product в схему dbo.
Г. Завершение сеансов перед переименованием таблицы
Применимо к: Azure Synapse Analytics, Система платформы аналитики (PDW)
Переименовать таблицу, которая сейчас используется, невозможно. Для переименования таблицы требуется монопольная блокировка таблицы. Если таблица используется, может потребоваться завершить сеансы, которые используют таблицу. Для завершения сеанса можно использовать команду KILL. Используйте инструкцию KILL осторожно, так как при завершении сеанса для всей незафиксированной работы будет выполнен откат. Сеансы в Azure Synapse Analytics имеют префикс «SID». Префикс «SID» и номер сеанса потребуется указать при вызове команды KILL. В этом примере мы получаем список активных или неактивных сеансов и затем завершаем сеанс «SID1234».
Д. Переименование столбца
Область применения: Система платформы аналитики (PDW)
В этом примере столбец FName таблицы Customer переименовывается в FirstName.
Как переименовать столбец таблицы в Microsoft SQL Server на T-SQL?
Microsoft SQL Server позволяет переименовывать столбцы в таблицах уже после создания этих таблиц, что в некоторых случаях бывает очень полезно, так как Вам не нужно пересоздавать всю таблицу целиком. В этой небольшой статье я расскажу Вам, как переименовать столбец в таблице в SQL севере на языке T-SQL.
В прошлой статье, посвящённой Microsoft SQL Server, а конкретно – «Изменение таблиц в Microsoft SQL Server или как добавить, удалить, изменить столбец в таблице?» я рассказывал, как на T-SQL изменить тип данных столбца, как добавить новый столбец или удалить существующий, но в той статье я упустил один очень важный момент, я не рассказал, как переименовать столбец в таблице. Поэтому продолжаем тему изменения таблиц в Microsoft SQL Server, и сегодня я расскажу, как переименовываются столбцы в таблицах.
Заметка! Начинающим рекомендую посмотреть мой видеокурс по T-SQL.
Переименование столбца таблицы в Microsoft SQL Server
Переименовать столбец таблицы в Microsoft SQL Server можно как в графическом конструкторе SSMS, так и на языке T-SQL. Способ с использованием конструктора, я думаю, понятен, т.е. нужно просто открыть конструктор, указать новое имя столбца и сохранить изменения. Если Вы не знаете, как работать с конструктором, то прочитайте вышеупомянутую статью про изменение таблиц и принцип станет понятен. А вот способ с использованием языка T-SQL не так очевиден, ведь столбцы в таблицах переименовываются с помощью системной хранимой процедуры sp_rename.
Системная хранимая процедура sp_rename
sp_rename — системная хранимая процедура, которая позволяет изменять имя пользовательского объекта базы данных. Таким объектом может выступать таблица, индекс, столбец таблицы или псевдоним типа данных.
Синтаксис sp_rename
Примечание!
Следует отметить, что изменить имя объекта можно только в текущей базе данных, в которой запущена процедура, изменять имена объектов, которые расположены в других базах, нельзя.
Также переименование таблицы или столбца не приведет к автоматическому переименованию ссылок на эту таблицу или столбец, т.е. необходимо вручную изменить любые объекты, которые ссылаются на переименованный объект.
Кроме того, для переименования объектов, конечно же, требуются соответствующие разрешения на изменения.
Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.
Пример переименования столбца в таблице с помощью процедуры sp_rename
Для примера давайте переименуем столбец Price таблицы Goods на ProductPrice. Таблица расположена в базе данных TestDB. В качестве SQL сервера у меня выступает — Microsoft SQL Server 2017 Express.
Как видите, столбец успешно переименован.
Видео-инструкция — Переименование столбца таблицы в Microsoft SQL Server
Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Базы данных
ALTER TABLE оператор SQLite
В этом учебном пособии вы узнаете, как использовать SQLite оператор ALTER TABLE чтобы добавить столбец, изменить столбец, удалить столбец, переименовать столбец или переименовать таблицу (с синтаксисом и примерами).
Описание
В этом руководстве по SQLite объясняется, как использовать SQLite оператор ALTER TABLE для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы (с синтаксисом и примерами).
Добавления столбца
Синтаксис
Синтаксис добавления столбца в таблицу в SQLite (используя ALTER TABLE):
table_name
Имя таблицы для изменения.
new_column_name
Имя нового столбца, добавляемого в таблицу.
column_definition
Тип данных и определение столбца (NULL или NOT NULL и т.д.).
Пример
Рассмотрим пример, который показывает, как добавить столбец в таблицу SQLite с помощью опертора ALTER TABLE.
Изменить столбец в таблице
Вы не можете использовать оператор ALTER TABLE для изменения столбца в SQLite. Вместо этого вам нужно будет переименовать таблицу, создать новую таблицу и скопировать данные в новую таблицу.
Синтаксис
Синтаксис для изменения столбца в таблице в SQLite:
ALTER TABLE table1 RENAME TO _table1_old;
CREATE TABLE table1 (
( column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
.
);
Пример
Давайте рассмотрим пример, который показывает, как изменить столбец в таблице SQLite.
И мы хотели изменить тип данных поля last_name на VARCHAR, мы могли бы сделать следующее:
Удалить столбец из таблицы
Вы не можете использовать оператор ALTER TABLE для удаления столбца в таблице. Вместо этого вам нужно будет переименовать таблицу, создать новую таблицу и скопировать данные в новую таблицу.
Синтаксис
Синтаксис DROP A COLUMN в таблице в SQLite:
ALTER TABLE table1 RENAME TO _table1_old;
CREATE TABLE table1 (
( column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
.
);
Пример
Давайте рассмотрим пример, который показывает, как удалить столбец в таблице SQLite.
Переименовать столбец в таблице
Вы не можете использовать оператор ALTER TABLE для переименования столбца в SQLite. Вместо этого вам нужно будет переименовать таблицу, создать новую таблицу и скопировать данные в новую таблицу.
Синтаксис
Синтаксис RENAME A COLUMN в таблице в SQLite:
ALTER TABLE table1 RENAME TO _table1_old;
CREATE TABLE table1 (
( column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
.
);
Пример
Давайте рассмотрим пример, который показывает, как переименовать столбец в таблице SQLite.
Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite
Базы данных
ALTER TABLE оператор MySQL
В этом учебном пособии вы узнаете, как использовать MySQL оператор ALTER TABLE для добавления столбца, изменения столбца, удаления столбца, переименования столбца или переименования таблицы (с синтаксисом и примерами).
Описание
MySQL оператор ALTER TABLE используется для добавления, изменения или удаления столбцов в таблице. Оператор MySQL ALTER TABLE также используется для переименования таблицы.
Добавить столбец в таблицу
Синтаксис
Синтаксис добавления столбца в таблицу MySQL (с использованием оператора ALTER TABLE):
Пример
Рассмотрим пример, который показывает, как добавить столбец в таблицу MySQL, используя оператор ALTER TABLE.
Например:
Добавить несколько столбцов в таблицу
Синтаксис
Синтаксис добавления нескольких столбцов в таблицу MySQL (с использованием оператора ALTER TABLE):
Пример
Рассмотрим пример, который показывает, как добавить несколько столбцов в таблицу MySQL, используя оператор ALTER TABLE.
Например:
Изменить столбец в таблице
Синтаксис
Синтаксис для изменения столбца в таблице MySQL (с использованием оператора ALTER TABLE):
Пример
Рассмотрим пример, который показывает, как изменить столбец в таблице MySQL с помощью оператора ALTER TABLE.
Например:
Этот пример ALTER TABLE изменит столбец с именем last_name как тип данных varchar (50) и установит для столбца значения NULL.
Изменить несколько столбцов в таблице
Синтаксис
Синтаксис для изменения нескольких столбцов в таблице MySQL (с использованием оператора ALTER TABLE):
Пример
Рассмотрим пример, который показывает, как изменить несколько столбцов в таблице MySQL, используя оператор ALTER TABLE.
Удаление столбца из таблицы
Синтаксис
Синтаксис для удаления столбца из таблицы в MySQL (с использованием оператора ALTER TABLE):
Например:
Пример
Рассмотрим пример, который показывает, как удалить столбец из таблицы в MySQL с помощью оператора ALTER TABLE.
Например:
Переименование столбца в таблице
Синтаксис
Синтаксис для переименования столбца в таблице MySQL (с использованием оператора ALTER TABLE):
Пример
Рассмотрим пример, который показывает, как переименовать столбец в таблице MySQL с помощью оператора ALTER TABLE.
Например:
Как переименовать столбец в таблице базы данных с помощью SQL?
Если я хочу просто переименовать столбец (не изменять его тип или ограничения, а только его имя) в базе данных SQL с помощью SQL, как это сделать? Или это невозможно?
Это для любой базы данных, претендующей на поддержку SQL, я просто ищу SQL-запрос, который будет работать независимо от фактической реализации базы данных.
11 ответов:
на PostgreSQL (и многих других СУБД), вы можете сделать это с регулярным ALTER TABLE о себе:
Я думаю, что это самый простой способ изменить имя столбца.
к сожалению, для независимого от базы данных решения вам нужно будет знать все о столбце. Если он используется в других таблицах в качестве внешнего ключа, они также должны быть изменены.
для самых простых случаев (без ограничений, триггеров, индексов или ключей), это займет выше 3 строки. Для чего-нибудь более сложного это может стать очень грязным, как вы заполните недостающие части.
однако, как уже упоминалось выше, существуют более простые базы данных конкретные методы, Если вы знаете, какую базу данных необходимо изменить заранее.
в Informix, вы можете использовать:
Это было реализовано до того, как стандарт SQL решил проблему-если она решена в стандарте SQL. Моя копия стандарта SQL 9075:2003 не показывает его как стандартный (среди прочего, переименование не является одним из ключевых слов). Я не знаю, действительно ли это в SQL 9075:2008.
в sql server вы можете использовать