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


Функция JetRenameColumn

Применимо к: Windows | Windows Server

Функция JetRenameColumn

Функцию JetRenameColumn можно использовать для изменения имени существующего столбца в таблице.

Windows XP:JetRenameColumn появился в Windows XP.

    JET_ERR JET_API JetRenameColumn(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in          JET_PCSTR szName,
      __in          JET_PCSTR szNameNew,
      __in          JET_GRBIT grbit
    );

Параметры

sesid

Сеанс, используемый для этого вызова.

tableid

Курсор, используемый для этого вызова.

szName

Текущее имя столбца, который будет переименован.

szNameNew

Новое имя столбца, который будет переименован.

grbit

Этот параметр должен иметь значение 0.

Возвращаемое значение

Эта функция возвращает тип данных JET_ERR с одним из следующих кодов возврата. Дополнительные сведения о возможных ошибках ESE см. в разделах Ошибки подсистемы расширяемого хранилища и Параметры обработки ошибок.

Код возврата

Описание

JET_errSuccess

Операция выполнена успешно.

JET_errClientRequestToStopJetService

Невозможно выполнить операцию, так как все действия экземпляра, связанного с сеансом, прекратились в результате вызова JetStopService.

JET_errColumnNotFound

Этот указанный столбец не существует для этой таблицы.

JET_errInvalidName

Одно из указанных имен объектов было недопустимым. Все имена объектов должны соответствовать одному и тому же набору правил. Ниже приведены эти правила.

  • Имена объектов должны состоять из символов ASCII.

  • Имена объектов должны иметь длину не менее одного символа.

  • Длина имен объектов не может превышать JET_cbNameMost (64) символа.

  • Имена объектов не могут начинаться с пробела. Имена объектов не могут содержать управляющие символы ASCII (0x00 по 0x1F).

  • Имена объектов не могут содержать восклицательный знак (!), символ точки (.), левой скобки ([) или правой скобки (]).

  • После проверки для имени объекта будет использоваться только часть строки до первого пробела (если таковой есть). Это фактически означает, что имена объектов также могут не содержать пробела.

JET_errInvalidParameter

Один из предоставленных параметров содержал непредвиденное значение или значение, которое не имело смысла в сочетании со значением другого параметра. Это может произойти для JetRenameColumn , если:

  • szName имеет значение NULL.

  • szNameNew имеет значение NULL.

JET_errInstanceUnavailable

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

JET_errInTransaction

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

JET_errNotInitialized

Невозможно выполнить операцию, так как экземпляр, связанный с сеансом, еще не инициализирован.

JET_errRestoreInProgress

Невозможно выполнить операцию, так как операция восстановления выполняется в экземпляре, связанном с сеансом.

JET_errSessionSharingViolation

Один и тот же сеанс нельзя использовать для нескольких потоков одновременно. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

JET_errTermInProgress

Невозможно завершить операцию, так как экземпляр, связанный с сеансом, завершает работу.

JET_errTransReadOnly

Обновление невозможно выполнить в область транзакции, доступной только для чтения. Транзакция только для чтения — это транзакция, запущенная с помощью вызова JetBeginTransaction2 с JET_bitTransactionReadOnly. Эта ошибка будет возвращена только в Windows XP и более поздних выпусках.

При успешном выполнении имя указанного столбца в таблице, связанной с курсором, постоянно меняется на новое имя. Все индексы, ссылающиеся на этот столбец, также будут обновлены.

При сбое изменение состояния базы данных не произойдет.

Комментарии

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

Операция переименования не влияет на идентификатор столбца.

Требования

Требование Значение

Клиент

Требуется Windows Vista или Windows XP.

Сервер

Требуется Windows Server 2008 или Windows Server 2003.

Верхняя часть

Объявлено в Esent.h.

Библиотека

Используйте ESENT.lib.

DLL

Требуется ESENT.dll.

Юникод

Реализовано как JetRenameColumnW (Юникод) и JetRenameColumnA (ANSI).

См. также:

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetBeginTransaction2