В SQL Server название столбца меняют через системную процедуру sp_rename. Команда короткая, но действие не такое безобидное: если старое имя столбца используется в запросах, представлениях, процедурах или коде приложения, после переименования они могут перестать работать
Базовый пример:
EXEC sp_rename 'dbo.Products.old_name', 'new_name', 'COLUMN';
Здесь dbo.Products.old_name — старый столбец с указанием схемы и таблицы, new_name — новое имя столбца, COLUMN — тип переименуемого объекта
Как проверить текущее имя столбца
Перед переименованием посмотрите структуру таблицы
SELECT
COLUMN_NAME,
DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'Products';
Так вы убедитесь, что столбец существует и написан именно так, как вы собираетесь указать в sp_rename
Как найти зависимости
Для быстрой проверки можно поискать старое имя столбца в процедурах и представлениях
SELECT
OBJECT_SCHEMA_NAME(object_id) AS schema_name,
OBJECT_NAME(object_id) AS object_name,
definition
FROM sys.sql_modules
WHERE definition LIKE '%old_name%';
Это не ловит все случаи, но помогает увидеть явные зависимости. Код приложения и внешние отчеты такой запрос не проверит, их нужно смотреть отдельно
Как переименовать столбец
Пример для учебной таблицы:
EXEC sp_rename 'dbo.Products.article_old', 'article', 'COLUMN';
После выполнения проверьте структуру таблицы
SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'Products';
Если в списке есть article и нет article_old, переименование прошло
Что изменится и что не изменится
Переименование меняет имя столбца в таблице. Данные в столбце остаются на месте. Тип данных не меняется. Индексы и ограничения могут продолжить работать, но их имена не всегда меняются автоматически
Главный риск — старые запросы. Если где-то написано SELECT article_old FROM dbo.Products, после переименования запрос начнет падать
Мини-практика
На учебной базе создайте таблицу и переименуйте столбец
CREATE TABLE dbo.Products (
id INT,
old_price INT
);
EXEC sp_rename 'dbo.Products.old_price', 'price', 'COLUMN';
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products';
Проверьте, что появился столбец price
Частые ошибки
Первая ошибка — не указать COLUMN. Без третьего аргумента можно получить неоднозначность или предупреждение
Вторая ошибка — переименовать столбец, который используется в представлении. Представление может не обновиться так, как ожидается
Третья ошибка — забыть про код приложения. База может переименовать столбец успешно, но приложение продолжит обращаться к старому имени
Что почитать дальше по SQL
Если нужен общий маршрут по теме, откройте рубрику SQL. Для соседних задач пригодятся эти разборы:
- ALTER TABLE в SQL: как добавить, изменить и удалить столбец
- SQL Server Configuration Manager: где открыть и что в нем смотреть
- SQL Server Management Studio скачать: как правильно установить SSMS
- SQL Server Management Studio: как подключиться к локальному серверу
Как проверить результат на практике
Для SQL-материала всегда начинайте с маленькой тестовой таблицы или с ограниченного набора строк. Сначала выполните SELECT, который показывает будущие данные, затем проверьте условие WHERE, сортировку или соединение, и только после этого переходите к изменяющим командам вроде UPDATE, DELETE или ALTER TABLE. Такой порядок снижает риск случайно изменить больше строк, чем планировалось
Хорошая самопроверка простая: заранее запишите, сколько строк должно попасть в результат, какие столбцы должны измениться и что должно остаться без изменений. Если запрос возвращает неожиданный набор строк, не добавляйте новые условия вслепую, а проверьте каждую часть отдельно: фильтр, соединение, группировку и сортировку



