㈠ sqlserver中事務的作用是什麼
sql server中事務的作用是如果任何一個語句操作失敗那麼整個操作就被失敗,以後操作就會回滾到操作前狀態,或者是上個節點。為了確保要麼執行,要麼不執行,就可以使用事務。是指訪問並可能更新資料庫中各種數據項的一個程序邏輯執行單元(unit)。
(1)sql的事務是什麼擴展閱讀:
事務通常由高級資料庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作組成。
一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
㈡ SQL中事務有幾種
有三種。第一種是顯式聲名的事務,這種事務要以begin
transaction為事務的起始標志。第二種是自動提交事務,這是sql
server的預設設置。每一個t-sql語句在執行完成後會被自動提交。第三種是隱含事務,在這種方式下,sql
server會在當前事務被提交或回滾後自動啟動一個新的事務,這個新事務直到用戶執行commit或rollback為止,這時系統又會啟動一個新事務。這樣就形成了一個連續的事務鏈。
㈢ sql中 事務的作用 什麼情況下要用事務 需要什麼條件
什麼是事務:事務是一個不可分割的工作邏輯單元,在資料庫系統上執行並發操作時事務是做為最小的控制單元來使用的。他包含的所有資料庫操作命令作為一個整體一起向系提交或撤消,這一組資料庫操作命令要麼都執行,要麼都不執行。
簡單例子銀行轉帳,如果甲把錢匯出去了,但是銀行發生了點問題,錢沒有匯到乙的錢包里,那錢怎麼辦。
這個時候如果用上事務,錢就會回滾到甲,一個減少,一個增加,要麼執行,要麼不執行
㈣ SQL事務概念是什麼,舉個例子說明什麼樣的東西是事務,與程序又有何區別,
資料庫事務是構成單一邏輯工作單元的操作集合。
舉例:轉賬是生活中常見的操作,比如從A賬戶轉賬100元到B賬號。站在用戶角度而言,這是一個邏輯上的單一操作,然而在資料庫系統中,至少會分成兩個步驟來完成:
1、將A賬戶的金額減少100元
2、將B賬戶的金額增加100元。
與程序的區別:一個程序中包含多個事務。在關系資料庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序。
(4)sql的事務是什麼擴展閱讀:
事務必須具備四個屬性,簡稱ACID屬性:
1、原子性(Atomicity):事務是一個完整的操作。事務的各步操作是不可分的(原子的);要麼都執行,要麼都不執行。
2、一致性(Consistency):當事務完成時,數據必須處於一致狀態。
3、隔離性(Isolation):對數據進行修改的所有並發事務是彼此隔離的,這表明事務必須是獨立的,它不應以任何方式依賴於或影響其他事務。
4、永久性(Durability):事務完成後,它對資料庫的修改被永久保持,事務日誌能夠保持事務的永久性。
㈤ 什麼是事務,SQL Server中的事務有什麼特點
原子性
事務必須是原子工作單元;對於其數據修改,要麼全都執行,要麼全都不執行。
一致性
事務在完成時,必須使所有的數據都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有數據的完整性。事務結束時,所有的內部數據結構(如
B
樹索引或雙向鏈表)都必須是正確的。
隔離
由並發事務所作的修改必須與任何其他並發事務所作的修改隔離。事務識別數據時數據所處的狀態,要麼是另一並發事務修改它之前的狀態,要麼是第二個事務修改它之後的狀態,事務不會識別中間狀態的數據。這稱為可串列性,因為它能夠重新裝載起始數據,並且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。
持久性
事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。
㈥ SQL事務概念問題
所謂事務是用戶定義的一個資料庫操作序列,這些操作要麼全做要麼全不做,是一個不可分割的工作單位。例如,在關系資料庫中,一個事務可以是一條SQL語句、一組SQL語句或整個程序。
事務和程序是兩個概念。一般地講,一個程序中包含多個事務。
事務的開始與結束可以由用戶顯式控制。如果用戶沒有顯式地定義事務,則由DBMS按預設規定自動劃分事
務。在SQL語言中,定義事務的語句有三條:
BEGIN TRANSACTION
COMMIT
ROLLBACK
㈦ Mysql資料庫中,事務是指什麼如何使用該功能
什麼是事務? x0dx0ax0dx0a事務是邏輯上的一組操作,組成這組操作的各個單元,要不全都成功要不全都失敗,這個特性就是事務 x0dx0ax0dx0a注意:mysql數據支持事務,但是要求必須是innoDB存儲引擎 x0dx0ax0dx0a解決這個問題: x0dx0ax0dx0amysql的事務解決這個問題,因為mysql的事務特性,要求這組操作,要不全都成功,要不全都失敗,這樣就避免了某個操作成功某個操作失敗。利於數據的安全 x0dx0ax0dx0a如何使用: x0dx0ax0dx0a(1)在執行sql語句之前,我們要開啟事務 start transaction; x0dx0ax0dx0a(2)正常執行我們的sql語句 x0dx0ax0dx0a(3)當sql語句執行完畢,存在兩種情況: x0dx0ax0dx0a1,全都成功,我們要將sql語句對資料庫造成的影響提交到資料庫中,committ x0dx0ax0dx0a2,某些sql語句失敗,我們執行rollback(回滾),將對資料庫操作趕緊撤銷 x0dx0ax0dx0a(注意:mysql數據支持事務,但是要求必須是innoDB存儲引擎) x0dx0amysql> create table bank(name varchar(20),money decimal(5,1))engine=innodb defau x0dx0alt charset=utf8; x0dx0ax0dx0amysql> inset into bank values('shaotuo',1000),('laohu',5000); x0dx0ax0dx0amysql> select*from bank; x0dx0a+---------+--------+ x0dx0a| name | money | x0dx0a+---------+--------+ x0dx0a| shaotuo | 1000.0 | x0dx0a| laohu | 5000.0 | x0dx0a+---------+--------+ x0dx0ax0dx0a------沒有成功「回滾」執行rollback x0dx0amysql> start transaction; //開啟事務 x0dx0aQuery OK, 0 rows affected (0.00 sec) x0dx0ax0dx0amysql> update bank set money=money+500 where name='shaotuo' x0dx0aQuery OK, 1 row affected (0.00 sec) x0dx0aRows matched: 1 Changed: 1 Warnings: 0 x0dx0ax0dx0amysql> update bank set moey=money-500 where name='laohu' x0dx0aERROR 1054 (42S22): Unknown column 'moey' in 'field list' x0dx0amysql> rollback; //只要有一個不成功,執行rollback操作 x0dx0aQuery OK, 0 rows affected (0.01 sec) x0dx0ax0dx0amysql> select*from bank; x0dx0a+---------+--------+ x0dx0a| name | money | x0dx0a+---------+--------+ x0dx0a| shaotuo | 1000.0 | x0dx0a| laohu | 5000.0 | x0dx0a+---------+--------+ x0dx0a------成功之後 進行commit操作 x0dx0amysql> start transaction; //開啟事務 x0dx0aQuery OK, 0 rows affected (0.00 sec) x0dx0ax0dx0amysql> update bank set money=money+500 where name='shaotuo' x0dx0aQuery OK, 1 row affected (0.01 sec) x0dx0aRows matched: 1 Changed: 1 Warnings: 0 x0dx0ax0dx0amysql> update bank set money=money-500 where name='laohu' x0dx0aQuery OK, 1 row affected (0.00 sec) x0dx0aRows matched: 1 Changed: 1 Warnings: 0 x0dx0ax0dx0amysql> commit; //兩個都成功後執行commit(只要不執行commit,sql語句不會對真實的資料庫造成影響) x0dx0aQuery OK, 0 rows affected (0.05 sec) x0dx0ax0dx0amysql> select*from bank; x0dx0a+---------+--------+ x0dx0a| name | money | x0dx0a+---------+--------+ x0dx0a| shaotuo | 1500.0 | x0dx0a| laohu | 4500.0 | x0dx0a+---------+--------+
㈧ 什麼是事務,SQL Server中的事務有什麼特點
事務是恢復和並發控制的基本單位。
事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱為ACID特性。
原子性(atomicity)。一個事務是一個不可分割的工作單位,事務中包括的諸操作要麼都做,要麼都不做。
一致性(consistency)。事務必須是使資料庫從一個一致性狀態變到另一個一致性狀態。一致性與原子性是密切相關的。
隔離性(isolation)。一個事務的執行不能被其他事務干擾。即一個事務內部的操作及使用的數據對並發的其他事務是隔離的,並發執行的各個事務之間不能互相干擾。
持久性(rability)。持續性也稱永久性(permanence),指一個事務一旦提交,它對資料庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其有任何影響。