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 |
其中一個指定的物件名稱無效。 所有物件名稱都必須符合相同的規則集。 這些規則如下:
|
JET_errInvalidParameter |
提供的其中一個參數包含非預期的值,或包含與另一個參數值結合時沒有意義的值。 當下列情況時, JetRenameColumn 可能會發生這種情況:
|
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