共用方式為


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 字元組成。

  • 物件名稱長度至少必須是一個字元。

  • 物件名稱長度不能超過 64) 個字元JET_cbNameMost (64 個字元。

  • 物件名稱不能以空格開頭 - 物件名稱可能不會包含透過0x1F) (0x00 ASCII 控制字元。

  • 物件名稱不能包含驚嘆號 (!) 、句號 (.) 、左括弧 ([) ] 或右括弧 (]) 字元。

  • 驗證之後,如果任何) 將用於物件名稱,則只有最多第一個空格的字串部分 (。 這實際上表示物件名稱可能不包含空格。

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

在唯讀交易的範圍內,無法完成更新。 唯讀交易是一種交易,已透過JET_bitTransactionReadOnly呼叫 JetBeginTransaction2 來啟動。 此錯誤只會由 Windows XP 和更新版本傳回。

成功時,與資料指標相關聯的資料表中指定資料行的名稱會永久變更為新的名稱。 任何參考該資料行的索引也會更新。

失敗時,不會變更資料庫狀態。

備註

資料行重新命名作業不尋常,因為與其他架構作業不同,它不會以交易的形式執行。 當指定資料表中的資料行在一個會話中重新命名時,使用該資料表的任何其他會話都會立即看到變更,即使它們位於交易中,仍會防止該會話看到該會話執行重新命名作業所做的任何其他變更。

資料行的資料行識別碼不會受到重新命名作業的影響。

規格需求

需求

用戶端

需要 Windows Vista 或 Windows XP。

Server

需要 Windows Server 2008 或 Windows Server 2003。

標頭

在 Esent.h 中宣告。

程式庫

使用 ESENT.lib。

Dll

需要ESENT.dll。

Unicode

實作為 JetRenameColumnW (Unicode) 和 JetRenameColumnA (ANSI) 。

另請參閱

JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetBeginTransaction2