Как переименовать столбец в sql
Тут используется запрос ALTER . Для переименования столбца он будет выглядеть следующим образом:
-- в таблице "cars" -- изменить колонку "quantity": -- поменять имя с "quantity" на "amount" ALTER TABLE cars RENAME COLUMN quantity TO amount;
RENAME (Transact-SQL)
Переименовывает созданную пользователем таблицу в Azure Synapse Analytics. Переименовывает созданную пользователем таблицу, столбец в созданной пользователем таблице или базе данных в Система платформы аналитики (PDW).
Сведения в этой статье относятся только к Azure Synapse Analytics и Analytics Platform System (PDW):
- Чтобы переименовать базу данных в SQL Server, используйте хранимую процедуру sp_renamedb.
- Чтобы переименовать базу данных в службе базы данных SQL Azure, используйте инструкцию ALTER DATABASE (база данных SQL Azure).
- Поддерживается переименование изолированных выделенных пулов SQL (прежнее название — хранилище данных SQL). Переименование выделенного пула SQL в рабочих областях Azure Synapse Analytics в настоящее время не поддерживается.
- Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.
Синтаксис
-- Syntax for Azure Synapse Analytics -- Rename a table. RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name TO new_table_name [;]
-- Syntax for Analytics Platform System (PDW) -- Rename a table RENAME OBJECT [::] [ [ database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name [;] -- Rename a database RENAME DATABASE [::] database_name TO new_database_name [;] -- Rename a column RENAME OBJECT [::] [ [ database_name . [schema_name ] ] . ] | [schema_name . ] ] table_name COLUMN column_name TO new_column_name [;]
Аргументы
RENAME OBJECT [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ] table_name TO new_table_name
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
Изменение имени определяемой пользователем таблицы. Указание таблицы для переименования с именем, состоящим из одной, двух или трех частей. Указание имени_новой_таблицы, состоящего из одной части.
RENAME DATABASE [::] [ database_name TO new_database_name
Область применения: Analytics Platform System (PDW)
Измените имя пользовательской базы данных с имени_базы_данных на новое_имя_базы_данных. Недопустимо переименование базы данных в следующие зарезервированные имена Analytics Platform System (PDW):
- master
- model
- msdb
- tempdb
- pdwtempdb1
- pdwtempdb2
- DWConfiguration
- DWDiagnostics
- DWQueue
RENAME OBJECT [::] [ [database_name . [ schema_name ] . ] | [ schema_name . ] ]table_name COLUMN column_name TO new_column_name
Область применения: Analytics Platform System (PDW)
Изменение имени столбца в таблице.
Разрешения
Для выполнения этой команды требуется следующее разрешение:
Ограничения
Невозможно переименовать внешние таблицы, индексы и представления
Вы не можете переименовать внешние таблицы, индексы и представления. Вместо переименования можно удалить внешнюю таблицу, индекс или представление и затем создать этот объект повторно с новым именем.
Невозможно переименовать используемую таблицу
Вы не можете переименовать таблицу или базу данных во время использования. Для переименования таблицы требуется монопольная блокировка таблицы. Если таблица используется, может потребоваться завершить сеансы, которые используют таблицу. Для завершения сеанса можно использовать команду KILL. Используйте инструкцию KILL осторожно, так как при завершении сеанса для всей незафиксированной работы будет выполнен откат. Сеансы в Azure Synapse Analytics имеют префикс «SID». Префикс «SID» и номер сеанса необходимо указать при вызове команды KILL. В этом примере мы получаем список активных или неактивных сеансов и затем завершаем сеанс «SID1234».
Ограничения переименования столбцов
Вы не можете переименовать столбец, используемый для распределения таблицы. Кроме того, невозможно переименовывать столбцы во внешней или временной таблице.
Представления не обновляются
При переименовании базы данных все представления, в которых используется предыдущее имя базы данных, станут недействительными. Это поведение относится к представлениям как внутри, так и вне базы данных. Например, при переименовании базы данных Sales представления, содержащие SELECT * FROM Sales.dbo.table1 , станут недействительными. Чтобы устранить эту проблему, старайтесь не использовать имена из трех частей в представлениях или обновите представления так, чтобы в них использовалось новое имя базы данных.
При переименовании таблицы обновления имени таблицы в представлениях не происходит. Все представления внутри или вне базы данных, которые ссылаются на предыдущее имя таблицы, станут недействительными. Чтобы устранить эту проблему, обновите представления так, чтобы в них использовалось новое имя базы данных.
При переименовании столбца обновление представлений для их ссылки на это новое имя столбца не выполняется. Представления продолжат отображать старое имя столбца до выполнения инструкции ALTER VIEW. В некоторых случаях представления могут стать недействительными, в результате чего потребуется удалить их и создать заново.
Блокировка
Для переименования таблицы необходима совмещаемая блокировка для объекта базы данных, совмещаемая блокировка для объекта СХЕМЫ и монопольная блокировка таблицы.
Примеры
A. Переименование базы данных
Область применения: только Analytics Platform System (PDW)
В этом примере мы переименовываем пользовательскую базу данных AdWorks в AdWorks2.
-- Rename the user defined database AdWorks RENAME DATABASE AdWorks to AdWorks2;
При переименовании таблицы все объекты и свойства, связанные с этой таблицей, обновляются, так чтобы в них использовалось новое имя таблицы. Например, обновляются определения таблиц, индексы, ограничения и разрешения. Представления не обновляются.
Б. Переименование таблицы
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
В этом примере мы переименовываем таблицу Customer в Customer1.
-- Rename the customer table RENAME OBJECT Customer TO Customer1; RENAME OBJECT mydb.dbo.Customer TO Customer1;
При переименовании таблицы все объекты и свойства, связанные с этой таблицей, обновляются, так чтобы в них использовалось новое имя таблицы. Например, обновляются определения таблиц, индексы, ограничения и разрешения. Представления не обновляются.
В. Перемещение таблицы в другую схему
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
Если вы хотите переместить объект в другую схему, используйте инструкцию ALTER SCHEMA. Например, следующая инструкция перемещает элемент таблицы из схемы product в схему dbo.
ALTER SCHEMA dbo TRANSFER OBJECT::product.item;
Г. Завершение сеансов перед переименованием таблицы
Область применения: Azure Synapse Analytics, Analytics Platform System (PDW)
Переименовать таблицу, которая сейчас используется, невозможно. Для переименования таблицы требуется монопольная блокировка таблицы. Если таблица используется, может потребоваться завершить сеансы, которые используют таблицу. Для завершения сеанса можно использовать команду KILL. Используйте инструкцию KILL осторожно, так как при завершении сеанса для всей незафиксированной работы будет выполнен откат. Сеансы в Azure Synapse Analytics имеют префикс «SID». Префикс SID и номер сеанса потребуется указать при вызове команды KILL. В этом примере мы получаем список активных или неактивных сеансов и затем завершаем сеанс «SID1234».
-- View a list of the current sessions SELECT session_id, login_name, status FROM sys.dm_pdw_exec_sessions WHERE status='Active' OR status='Idle'; -- Terminate a session using the session_id. KILL 'SID1234';
Д. Переименование столбца
Область применения: Analytics Platform System (PDW)
В этом примере столбец FName таблицы Customer переименовывается в FirstName.
-- Rename the Fname column of the customer table RENAME OBJECT::Customer COLUMN FName TO FirstName; RENAME OBJECT mydb.dbo.Customer COLUMN FName TO FirstName;
Дальнейшие действия
- sp_renamedb
- CREATE DATABASE (база данных SQL Azure)
Переименование столбцов (ядро СУБД)
Столбец таблицы в SQL Server можно переименовать с помощью SQL Server Management Studio или Transact-SQL.
ограничения
Переименование столбца таблицы не приводит к автоматическому переименованию ссылок на этот столбец. Необходимо вручную изменить все объекты, которые ссылаются на переименованный столбец. Например, если переименован столбец таблицы и на этот столбец имеется ссылка в триггере, то необходимо изменить триггер, указав новое имя столбца. Используйте sys.sql_expression_dependencies , чтобы составить список зависимостей для объекта перед его переименованием.
Переименование столбца не обновляет метаданные для любых объектов, которые SELECT всех столбцов (с помощью * ) из этой таблицы не обновляются. Например, если переименовать столбец таблицы и этот столбец ссылается на представление или функцию, не привязанную к схеме, все столбцы (используя), * метаданные представления или функции продолжают отражать исходное имя столбца. Обновите метаданные с помощью sp_refreshsqlmodule или sp_refreshview.
Разрешения
Необходимо разрешение ALTER на объект.
Использование SQL Server Management Studio
Переименование столбца в обозревателе объектов
- В обозревателе объектов подключитесь к экземпляру ядра СУБД.
- В обозревателе объектовщелкните правой кнопкой мыши таблицу, в которой нужно переименовать столбцы, и выберите пункт Переименовать.
- Введите новое имя столбца.
Переименование столбца с помощью конструктора таблиц
- В обозревателе объектовщелкните правой кнопкой мыши таблицу, в которой нужно переименовать столбцы, и выберите пункт Конструирование.
- В разделе Имя столбцавыберите имя, которое нужно изменить, и введите новое.
- В меню Файл выберите пункт Сохранить имя таблицы.
Вы также можете изменить имя столбца на вкладке «Свойства столбца». Выберите столбец, имя которого нужно изменить и введите новое значение для имени.
Использование Transact-SQL
Переименование столбца
В следующем примере выполняется переименование столбца ErrorTime в таблице dbo.ErrorLog базы данных AdventureWorksLT на столбец ErrorDateTime .
EXEC sp_rename 'dbo.ErrorLog.ErrorTime', 'ErrorDateTime', 'COLUMN';
Обратите внимание на предупреждение о выходе и убедитесь, что другие объекты или запросы не были нарушены:
Caution: Changing any part of an object name could break scripts and stored procedures.
Дополнительные сведения см. в sp_rename (Transact-SQL).
Следующие шаги
- Изменение столбцов
- sys.sql_expression_dependencies (Transact-SQL)
- sp_rename (Transact-SQL)
Как переименовать имя столбца в SQL 1 мин для чтения


Добавить в избранное
Главное меню » Базы данных » MySQL » Как переименовать имя столбца в SQL

В SQL переименование имен столбцов является обычным требованием при работе с таблицами базы данных. Если вам нужно улучшить удобочитаемость, стандартизировать соглашения об именовании или учесть изменения в структуре данных, переименование столбцов может быть выполнено с помощью инструкции SQL ALTER TABLE. Эта статья содержит подробное руководство по переименованию имен столбцов в SQL, охватывающее синтаксис, примеры и рекомендации.
Синтаксис переименования столбцов:
Чтобы переименовать столбец в SQL, вы можете использовать оператор ALTER TABLE с предложением RENAME COLUMN. Базовый синтаксис следующий:
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;
Объяснение
Здесь table_name относится к имени таблицы, содержащей столбец, который вы хотите переименовать. old_column_name представляет текущее имя столбца, а new_column_name — желаемое новое имя для столбца.
Пример 1: Переименование столбцов:
Давайте рассмотрим несколько примеров, иллюстрирующих процесс переименования имен столбцов в SQL:
Пример 1.1: Переименование столбца в таблице
ALTER TABLE employees RENAME COLUMN emp_name TO employee_name;
Объяснение:
В этом примере столбец emp_name в таблице employees переименован в employee_name.
Пример 1.2: Переименование столбца с использованием псевдонима таблицы
ALTER TABLE orders AS o RENAME COLUMN o.order_date TO transaction_date;
Объяснение:
В этом примере столбец order_date в таблице orders переименован в transaction_date с использованием табличного псевдонима o.
Заключение
Переименование имен столбцов в SQL — обычная операция при работе с таблицами базы данных. Переименование имен столбцов в SQL — обычная операция при работе с таблицами базы данных. Используя инструкцию ALTER TABLE с предложением RENAME COLUMN, вы можете легко изменять имена столбцов для улучшения удобства чтения, соблюдения соглашений об именовании или учета изменений в структуре данных. Следование предоставленному синтаксису и примерам, наряду с учетом лучших практик и потенциальных зависимостей, обеспечивает плавный процесс переименования. Переименование столбцов помогает поддерживать хорошо структурированную схему базы данных и улучшает читаемость и ремонтопригодность кода SQL.
Читать Удалить базу данных в MySQL
Часто задаваемые вопросы, связанные с переименованием столбцов в SQL:
Вопрос 1. Могу ли я переименовать несколько столбцов в одном операторе ALTER TABLE?
Нет, предложение RENAME COLUMN одновременно переименовывает только один столбец. Если вам нужно переименовать несколько столбцов, вам нужно будет использовать отдельные инструкции ALTER TABLE для каждого столбца.
Вопрос 2. Что происходит с данными в столбце, когда я его переименовываю?
Переименование столбца не влияет на данные, хранящиеся в нем. Операция переименования обновляет только метаданные, связанные со столбцом, такие как его имя.
Вопрос 3. Могу ли я отменить операцию переименования столбца?
Нет, прямой операции отмены переименования столбца не существует. Чтобы отменить изменение имени столбца, вам нужно вручную переименовать его обратно в исходное имя, используя другой оператор ALTER TABLE.
Вопрос 4. Влияет ли переименование столбца на запросы или код, ссылающийся на старое имя столбца?
Да, после переименования столбца любые запросы, представления или код, ссылающиеся на старое имя столбца, необходимо будет обновить, чтобы использовать новое имя столбца. Сбой в обновлении зависимого кода может привести к ошибкам или неожиданному поведению.
Вопрос 5. Есть ли какие-либо соображения по переименованию столбцов с ограничениями внешнего ключа?
Переименование столбца с ограничением внешнего ключа требует дополнительных шагов. Вам нужно сначала удалить ограничение внешнего ключа, переименовать столбец, а затем воссоздать ограничение внешнего ключа с новым именем столбца.
Вопрос 6. Могу ли я переименовать столбец в определенной позиции в таблице?
Нет, положение столбца в таблице определяется порядком его создания. Переименование столбца не меняет его положения в таблице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.