2017-02-14 115 views
0

如何在Sybase中創建其中一個數據庫爲脫機的角色。它給出了950錯誤。有趣的是,它創建數據庫中的角色,但消息說在Sybase中使用脫機數據庫創建角色

請稍候,稍後再嘗試您的命令。
Sybase錯誤代碼= 950 嚴重級別= 14,狀態= 1,事務狀態= 0

+0

你的問題沒有道理。你說它給出了一個錯誤,但創建了角色。你如何確定它創建的角色?創建角色後不起作用。通常,數據庫必須在線才能創建角色,因爲它需要寫入目標數據庫中的系統表。 –

+0

準確@MichaelGardner。它不應該創造一個角色。我相信這是一個錯誤。如果嘗試在數據庫脫機時直接使用Sybase Central創建新角色,則會引發錯誤,指出其中一個數據庫處於脫機狀態。您接受它並單擊完成它將顯示此角色已存在。 – KshitishSC

回答

1

你看到可能與ASE如何打包交易,而不是一個真正的錯誤行爲。

該角色本身是在master數據庫(master..sysserverroles & master..sysloginroles)中創建的,然後將該角色添加到用戶數據庫(myUserDB..sysroles)中。這很可能是在多個事務中創建的,因此創建角色本身的事務正在成功完成,但由於數據庫處於脫機狀態,將角色添加到數據庫的事務失敗。

因此,該工具告訴你事實存在,但是一旦數據庫恢復聯機,它仍然需要添加到用戶數據庫中。

+0

感謝您提供的信息,但是這種行爲不僅僅是從Sybase Central嘗試時,而且也是從我們的代碼和Interactive SQL中進行嘗試時。我是一個新手,但如果我的理解是正確的,當我們嘗試從過程創建角色,而不是我們可以說有多個事務和過程的某些部分回滾以前的指令不起作用,但我們正在使用**創建角色**命令,這應該創建一個角色併發出警告或根本不應創建角色。 – KshitishSC

+0

@KshitishSC有趣......但似乎無論如何,角色創建和數據庫分配都被視爲單獨的事務。 –

+0

是的,它似乎是這樣,這就是爲什麼我認爲這是一個錯誤 – KshitishSC

相關問題