【问题标题】:Sybase loses data when using ASE ISQL utility?使用 ASE ISQL 实用程序时 Sybase 丢失数据?
【发布时间】:2014-09-28 19:05:35
【问题描述】:

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

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

这真的是真的吗?

【问题讨论】:

    标签: database sybase sap-ase isql


    【解决方案1】:

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

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

    【讨论】:

    • 我认为存在混淆。他指的是 ASEisql 开源项目,该项目是在 Sybase 切换 GUI 后创建的,当时他们用 Java 重新编写了一堆管理部分。检查问题中的链接,您会看到他指的是什么。
    猜你喜欢
    • 1970-01-01
    • 2019-01-23
    • 2017-11-24
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多