大多数页面我已经读了“DDL命令在SQL Server中有自动提交”,如果我没看错的这一说法只是意味着我们并不需要显式的commit命令DDL命令。DDL命令是SQL服务器中的AutoCommit,是什么意思?
那么为什么...
1)改变表EMP添加年龄INT;
UPDATE EMP SET年龄= 20;
失败,说无效的列名 '年龄'
2)BEGIN TRAN
ALTER TABLE EMP添加年龄INT;
ROLLBACK
可以成功回滚。
也许我错了自动提交的概念,请用例子来解释它在那里actully有特效。
感谢您的任何帮助。
你的第一个例子表明,批次之前将其完全编译正在执行。它与“自动提交”无关 - 以及你引用哪些资源做出这个声明? – 2012-07-09 07:36:23
@Damien_The_Unbeliever,k然后我的第一个例子与批次有关,对不起,我把它与AutoCommit联系起来。但是你能否让我理解“DDL命令是AutoCommit”,举个例子,它实际上意味着什么? – user369182 2012-07-09 07:42:30
我不知道你从哪里得到“DDL命令是AutoCommit”的短语 - 它对我来说并没有什么意义,因为Autocommit是一种事务模式(与隐式和显式事务相比)。 – 2012-07-09 07:45:07