关于自动提交的问题
C#专用接口的连接字符串中的自动提交 (auto commit), 其默认配置为 true,即命令发往服务器后立刻提交。
当自动提交参数设置为false时,命令发往服务器后,需要用户显式地发送“commit”命令到服务器,之前的操作才会被提交,否则被回滚。但有的时候,没有发送commit 命令到服务器,但还是提交了SQL语句,这是为什么呢?
解答
有一些SQL语句,比如Create Table 、Truncate Table等DDL语句涉及数据库资源的分配回收的问题,这类语句自动带有commit的功能,此语句之前发送的SQL语句会在本条语句执行之前被提交。所以,这类语句会隐式的提交之前的事务,如果涉及用户主动回滚则需要注意这类SQL语句。