我管理在Solaris(11)上运行的Sybase ASE(15.0.7)数据库。我是Sybase ASE的新手,但我对SQL Server等数据库的整体知识非常了解。最近,当我正在执行诸如上传程序员脚本等任务时,我被告知不要将它与ASE ISQL实用程序一起使用,直接从命令行实用程序(isql)开始,否则会丢失部分数据。我很困惑,在将脚本交给DB时,它怎么可能失去任何东西。我试着与工作中的人讨论这个问题,听起来很奇怪。
我们都不是真正的Sybase经验丰富的管理员,而且他们通常无法就此案给出任何有争议的答案。所以他们只是声称ASE isql是禁止的。
这真的是真的吗?
答案 0 :(得分:-2)
这绝对不是真的。 Sybase命令行实用程序' isql' Sybase客户非常强烈地使用它。 我认为混淆可能来自isql不执行自动提交的事实,这在许多其他数据库的客户端工具中很常见。 因此,当您在默认的非链接事务模式下启动显式事务(BEGIN TRANSACTION)时,或者在链式事务模式下运行时,以及当您退出' isql'时,事务未提交,因此ASE服务器将回滚它。这可能被解释为“数据丢失'但事实并非如此。 因此,在ASE中,您应该显式地委托事务,否则它最终将被回滚。
(只是为了完整性,在默认的非链接事务模式下,如果你不使用BEGIN TRANSACTION,那么每个DML命令都会在它准备就绪时立即提交。这与autocommit不同,虽然有时会这样称呼。)