惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
Y
Y Combinator Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
aimingoo的专栏
aimingoo的专栏
I
InfoQ
C
Check Point Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
Last Week in AI
Last Week in AI
GbyAI
GbyAI
P
Proofpoint News Feed
量子位
Stack Overflow Blog
Stack Overflow Blog
Microsoft Azure Blog
Microsoft Azure Blog
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
人人都是产品经理
人人都是产品经理
B
Blog
T
The Blog of Author Tim Ferriss
H
Help Net Security
云风的 BLOG
云风的 BLOG

博客园 - 天下

[转]开始PFC之旅行 查询同一表内多字段同时重复记录的SQL语句 数据库设计中的14个关键技巧收藏[转] 走出海量数据及访问量压力困境收藏[转] 大型网站架构设计[转] (转)各主要数据库的连接串 - 天下 - 博客园 vs2005水晶报表页面打开数据库登录框提示取消方法[转] .net2.0 +asa 10 连接程序 PD12.5 生成 PB 中table的扩展属性 - 天下 Asp.net2.0回发或回调参数无效问题的解决 datagrid格式变乱解决方案---------------网页内强制折行与不折行的解决方案 Report Service 为用户“NT AUTHORITY、NETWORK SERVICE”授予的权限不足,无法进行此操作。(rsAccessDenied)处理 [转]SQL Server一些常见性能问题的总结 SQL SERVER 添加序号列 sharepoint Site Data Web 服务中的错误。 (0x80042616)PortalCrawl Web 服务中的错误。 (0x80042617)处理 TFS的TF31004:错误 创建WebPart时的数据库连接问题。 Visual Studio 2005 Team Foundation Server Trial Edition下载 Team Foundation Server架设之删除项目
SQL Anywhere 10 关于 COMMIT 掉数据的问题
天下 · 2009-01-03 · via 博客园 - 天下

最近使用SQL Anywhere 10 意外的发现掉数据的问题.

情况:

就是如果直接把数据库服务意外关闭了! 结束之前的数据操作就会丢失!

每次有一个检查点! 如果你进程结束没有新增执行检查点的话! 这样就会丢失数据

说明:

  • 执行 COMMIT 语句使对数据库进行的更改成为永久更改。

  • 执行 ROLLBACK 语句撤消由事务执行的所有更改。

  • 执行具有自动提交副作用的语句:数据定义命令(如 ALTER、CREATE、COMMENT 和 DROP)都具有自动提交副作用。

  • 与数据库断开连接将执行隐式回退。

  • 总结:也就是说在SQL Anywhere 10 没有提交事务的话,出现意外的中断,就会导致日志回滚,导致数据丢失.

    作用在使用过程中一定要注意事务的提交

    在SQL Anywhere 10 的COMMIT执行中要注意的问题

    1就是Interactive SQL执行,10 默认是退出 才提交 COMMIT,如果执行过程没有退出,就回很容易掉掉数据

    auto_commit 选项 [Interactive SQL]

    功能

    控制是否在各条语句后执行 COMMIT。

    允许值

    On、Off

    缺省值

    Off

    说明

    如果 auto_commit 为 ON,则会在每条语句成功完成后执行数据库 COMMIT。

    缺省情况下,只有在用户发出 COMMIT 或 ROLLBACK 语句或导致自动提交的 SQL 语句(例如 CREATE TABLE 语句)时才执行 COMMIT 或 ROLLBACK 语句。

    处理方式:

    在Interactive SQL要执行提交
    要在
    工具-选项-提交
    各命令之后 打勾

    在Interactive SQL酒会各个命令后就提交

    2就是ODBC执行不一样

    根据您使用的接口以及控制自动提交行为的方式,自动提交模式的行为会稍有不同。

    实现自动提交模式可以采用以下两种方式之一:

    • 客户端自动提交    当应用程序使用自动提交时,客户端库在每一个 SQL 语句执行之后发送 COMMIT 语句。

      ADO.NET、ADO/OLE DB、ODBC 和 PHP 应用程序从客户端控制提交行为。

    • 服务器端自动提交    应用程序关闭链接模式时,数据库服务器提交每个 SQL 语句的结果。此行为在使用 JDBC 的情况下由 chained 数据库选项隐式控制。

      嵌入式 SQL、JDBC 和 Open Client 应用程序操纵服务器端提交行为(例如,这些应用程序设置 chained 选项)。

    对于复合语句(如存储过程或触发器),在客户端和服务器端自动提交之间有一些区别。从客户端看,存储过程是单一语句,因此自动提交将在整个过程执行之后发送单一提交语句。从数据库服务器的角度来看,存储过程可以由许多 SQL 语句构成,因此服务器端自动提交将提交该过程内的每个 SQL 语句的结果。