0

我管理在 Solaris(11) 上运行的 Sybase ASE(15.0.7) 数据库。我对 Sybase ASE 非常陌生,但我对 SQL Server 等数据库的工作有很好的全面了解。最近,当我在执行诸如上传程序员脚本等任务时,有人告诉我不要将它与ASE ISQL实用程序一起使用,而是直接从命令行实用程序 (isql) 使用,否则会丢失部分数据。我很困惑,在将脚本交给数据库时怎么可能丢失任何东西。我试图与工作人员讨论这个问题,说这听起来很奇怪。

我们都不是真正的 Sybase 经验丰富的管理员,通常他们无法就此案给我任何有争议的答案。所以他们只是声称 ASE isql 是禁止的。

这真的是真的吗?

4

1 回答 1

-2

这绝对不是真的。Sybase 客户非常频繁地使用 Sybase 命令行实用程序“isql”。我认为混淆可能来自 isql 不执行“自动提交”这一事实,这在许多其他数据库的客户端工具中很常见。因此,当您在默认的非链式事务模式下启动显式事务(BEGIN TRANSACTION)时,或者当您在链式事务模式下运行时,当您退出“isql”时,事务没有提交,因此 ASE 服务器将回滚。这可能被解释为“数据丢失”,但事实并非如此。因此,在 ASE 中,您应该明确地 COMMIT 一个事务,否则它最终会被回滚。

(为了完整起见,在默认的非链式事务模式下,如果您不使用 BEGIN TRANSACTION,则每个 DML 命令将在准备好后立即提交。这与自动提交不同,尽管有时会这样调用。)

于 2014-09-30T09:27:26.277 回答