Как переименовать колонку в sql
Перейти к содержимому

Как переименовать колонку в sql

  • автор:

Переименование столбцов (ядро СУБД)

Столбец таблицы в SQL Server можно переименовать с помощью SQL Server Management Studio или Transact-SQL.

ограничения

Переименование столбца таблицы не приводит к автоматическому переименованию ссылок на этот столбец. Необходимо вручную изменить все объекты, которые ссылаются на переименованный столбец. Например, если переименован столбец таблицы и на этот столбец имеется ссылка в триггере, то необходимо изменить триггер, указав новое имя столбца. Используйте sys.sql_expression_dependencies , чтобы составить список зависимостей для объекта перед его переименованием.

Переименование столбца не обновляет метаданные для любых объектов, которые SELECT всех столбцов (с помощью * ) из этой таблицы не обновляются. Например, если переименовать столбец таблицы и этот столбец ссылается на представление или функцию, не привязанную к схеме, все столбцы (используя), * метаданные представления или функции продолжают отражать исходное имя столбца. Обновите метаданные с помощью sp_refreshsqlmodule или sp_refreshview.

Разрешения

Необходимо разрешение ALTER на объект.

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

Переименование столбца в обозревателе объектов

  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД.
  2. В обозревателе объектовщелкните правой кнопкой мыши таблицу, в которой нужно переименовать столбцы, и выберите пункт Переименовать.
  3. Введите новое имя столбца.

Переименование столбца с помощью конструктора таблиц

  1. В обозревателе объектовщелкните правой кнопкой мыши таблицу, в которой нужно переименовать столбцы, и выберите пункт Конструирование.
  2. В разделе Имя столбцавыберите имя, которое нужно изменить, и введите новое.
  3. В меню Файл выберите пункт Сохранить имя таблицы.

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

Использование 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)

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

Если же явно не указать имя для выражения, то будет использован способ именования по умолчанию, который зависит от используемой СУБД. Так в MS Access будут использованы имена типа выражение1 и т.д., а выходной столбец в MS SQL Server вообще не будет иметь заголовка.

Предикаты (часть 2)

Предикат LIKE

  • Символ подчеркивания (_), который можно использовать вместо любого единичного символа в проверяемом значении.
  • Символ процента (%), который заменяет набор любых символов (число символов в наборе может быть от 0 и более) в проверяемом значении.

Шаблон Описание
‘abc%’ Любые строки, которые начинаются с букв «abc».
‘abc_’ Строки длиной строго 4 символа, причем первыми символами строки должны быть «abc».
‘%z’ Любая последовательность символов, которая обязательно заканчивается символом «z».
‘%Rostov%’ Любая последовательность символов, содержащая слово «Rostov» в любом месте строки.

name class launched
Haruna Kongo 1916
Hiei Kongo 1914
Kirishima Kongo 1915
Kongo Kongo 1913
Musashi Yamato 1942
Yamato Yamato 1941

Если искомая строка содержит трафаретный символ, то следует задать управляющий символ в предложении ESCAPE. Этот управляющий символ должен использоваться в шаблоне перед трафаретным символом, сообщая о том, что трафаретный символ следует трактовать как обычный символ. Например, если в некотором поле следует отыскать все значения, содержащие символ «_», то шаблон ‘%_%’ приведет к тому, что будут возвращены все записи из таблицы. В данном случае шаблон следует записать следующим образом:

Для проверки значения на соответствие строке «25%» можно воспользоваться таким предикатом:

  • Если либо проверяемое значение, либо образец, либо управляющий символ равен NULL, истинностное значение равно UNKNOWN.
  • В противном случае, если проверяемое значение и образец имеют нулевую длину, истинностное значение равно TRUE.
  • В противном случае, если проверяемое значение соответствует шаблону, то предикат LIKE равен TRUE.
  • Если не соблюдается ни одно из перечисленных выше условий, предикат LIKE равен FALSE.

Использование значения NULL в условиях поиска

Предикат
IS [NOT] NULL

позволяет проверить отсутствие (наличие) значения в полях таблицы. Использование в этих случаях обычных предикатов сравнения может привести к неверным результатам, т.к. сравнение со значением NULL дает результат UNKNOWN (неизвестно).

Как переименовать столбец в sql

Тут используется запрос ALTER . Для переименования столбца он будет выглядеть следующим образом:

-- в таблице "cars" -- изменить колонку "quantity": -- поменять имя с "quantity" на "amount" ALTER TABLE cars RENAME COLUMN quantity TO amount; 

Переименование столбцов таблицы и ограничений

Чтобы переименовать столбцы таблицы, используйте предложение RENAME COLUMN инструкции ALTER TABLE .

Чтобы переименовать любое существующее ограничение для таблицы, используйте предложение RENAME CONSTRAINT инструкции ALTER TABLE .

2-24-2-2118409

При переименовании столбца таблицы новое имя не должно конфликтовать с именем любого существующего столбца в таблице. С предложением RENAME COLUMN не допускается включать никаких других предложений.

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

CONSTRAINT mktg_pk PRIMARY KEY(team_id));

2-24-3-6674373

В примере a столбец id таблицы marketing переименовывается в mktg_id . В примере b mktg_pk переименовывается в new_mktg_pk .

При переименовании любого существующего ограничения для таблицы новое имя не должно конфликтовать с именами всех существующих ограничений. Для переименования создаваемых системой имен ограничений можно использовать предложение RENAME CONSTRAINT .

Далее: Проверка последовательностей

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

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