Поделиться через


Команда .rename table

Изменяет имя существующей таблицы.

Команда .rename tables изменяет имя ряда таблиц в базе данных в виде одной транзакции.

Разрешения

Для выполнения этой команды необходимо иметь по крайней мере разрешения администратора таблицы.

Синтаксис

.renametable OldName NewName to

.renametables NewName OldName = [ifexists] [, ...]

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
OldName string ✔️ Имя существующей таблицы. Возникает ошибка, и вся команда завершается ошибкой, если OldName не называет существующую таблицу, если ifexists не указано.
NewName string ✔️ Новое имя таблицы, которая использовалась для имени OldName.
ifexists string Если задано, команда будет обрабатывать сценарий, в котором таблица не существует. Вместо сбоя он будет продолжаться без попытки переименовать таблицу, которая не существует.

Замечания

Эта команда работает только в таблицах базы данных в области. Имена таблиц не могут быть квалифицированы с именами кластеров или баз данных.

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

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

Примеры

Представьте базу данных со следующими таблицами: A, Bи CA_TEMP. Следующая команда переключится A и A_TEMP (таким образом, чтобы A_TEMP таблица была вызвана Aи наоборот), переименовывалась B NEWBв и сохранялась C как есть.

.rename tables A=A_TEMP, NEWB=B, A_TEMP=A

Следующая последовательность команд:

  1. Создает временную таблицу
  2. Заменяет существующую или не имеющуюся таблицу новой таблицей
// Drop the temporary table if it exists
.drop table TempTable ifexists

// Create a new table
.set TempTable <| ...

// Swap the two tables
.rename tables TempTable=Table ifexists, Table=TempTable

// Drop the temporary table (which used to be Table) if it exists
.drop table TempTable ifexists

Переименование исходной таблицы материализованного представления

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

.renametable OldName NewName to with (updateMaterializedViews=true)

Таблица будет переименована, и все материализованные представления, ссылающиеся на OldName, будут обновлены, чтобы указать NewName в транзакционной форме.

Примечание.

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