大多數頁面我已經讀了「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