2014-09-28 83 views
0

我管理在Solaris(11)上運行的Sybase ASE(15.0.7)數據庫。我對Sybase ASE很特別,但是我在處理SQL Server等數據庫方面擁有非常出色的整體知識。最近,在我執行諸如上傳程序員腳本等任務時,我被告知不要將它與ASE ISQL實用程序一起使用,而是直接從命令行實用程序(isql)使用它,否則將會丟失部分數據。我很困惑,在將腳本交給DB時,它怎麼可能會失去任何東西。我試圖與工作人員討論這個問題,說這聽起來很奇怪。使用ASE ISQL實用程序時,Sybase會丟失數據?

我們都不是真正的Sybase經驗豐富的管理員,他們通常都不會給我任何關於此案的爭議答案。所以他們只是聲稱這是ASE isql是一個禁忌。

難道那真的是真的嗎?

回答

-2

這是絕對不正確的。 Sybase客戶非常強烈地使用Sybase命令行實用程序「isql」。 我認爲混淆可能來自於isql不執行「自動提交」的事實,正如許多其他數據庫的客戶端工具中常見的那樣。 因此,當您在默認的非鏈式事務模式下啓動顯式事務(BEGIN TRANSACTION)時,或者當您在鏈式事務模式下運行時以及退出'isql'時,則該事務未提交,因此ASE服務器將回滾。這可能會被解釋爲'數據丟失',但這並非真正發生。 所以,在ASE中你應該明確地提交一個事務,否則它最終會被回滾。

(僅僅爲了完整性,在默認的非鏈式事務模式下,如果您不使用BEGIN TRANSACTION,那麼每個DML命令都會在準備就緒時立即提交,這與autocommit不同,儘管有時也會這樣。 )

+0

我認爲存在一些混淆。他指的是Sybase切換GUI之後創建的ASEisql開源項目,當時他們在Java中重新編寫了一堆管理塊。檢查問題中的鏈接,你會看到他指的是什麼。 – 2014-09-30 17:18:58