當前位置:首頁 » 編程語言 » sql命令行事務
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql命令行事務

發布時間: 2023-02-28 07:29:23

⑴ 在sql中怎樣使用事務

SQL Server 需要顯示的定義 開始一個事務.
BEGIN TRANSACTION;

例如:
1> BEGIN TRY
2> -- SQL Server 需要顯示的定義 開始一個事務.
3> BEGIN TRANSACTION;
4> -- 插入2條同樣的數據,使主鍵重復,引發錯誤後回滾事務.
5> INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
6> INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
7> -- 執行成功後,需要提交事務.
8> COMMIT;
9> END TRY
10> BEGIN CATCH
11> PRINT('Main.錯誤代碼 = ' + STR(ERROR_NUMBER()));
12> PRINT('Main.錯誤嚴重級別 = ' + STR(ERROR_SEVERITY()));
13> PRINT('Main.錯誤狀態代碼 = ' + STR(ERROR_STATE()));
14> PRINT('Main.錯誤信息 = ' + ERROR_MESSAGE());
15> -- 回滾事務
16> ROLLBACK;
17> END CATCH
18>
19> go

⑵ mysql命令行什麼時候需要手動開啟事務

MySQL的事務如果不在任何修改,默認是自動提交的,也就是你只要執行一個SQL,回車之後這個SQL語句如果沒有任何問題,只需完成後是自動提交的。
控制這個功能的參數是:autocommit。如果這個參數的值是on或者1,那麼就是上面我說的那種現象。如果是off或者0,則表示不會自動提交事務。需要你顯示的去提交事務。否則鎖執行的SQL不會不會永久生效,只會對你當前命令行的session有效,退出MySQL後,執行的SQL語句將會別回滾。
當你需要兩個SQL語句同時成功或者同時失敗的時候,你可以手動地開啟一個事務。比如下面的場景:
你想向訂單表order_info表中插入一條新的訂單記錄,同時要想支付信息表payment_info中插入一條支付信息記錄,這個時候從業務的角度上來看,這兩個表中的插入操作,需要保持原子性(也就是事務的四大特性之一),也就是要麼都插入成功,要麼都插入失敗,不能存在訂單插入成功,支付插入失敗,反之也不可以。
要滿足上面的需求,你就需要手動的去開啟一個事務,在這個事務中去插入兩個表中的數據。然後再提交這個事務。如果這兩個表的插入操作,你不手動的開啟事務,MySQL自己會把兩個SQL語句分開放在兩個單獨的事務中。執行一個插入,就會自動提交一個事務,然後在執行另外一個插入,再自動提交另外一個事務。
在MySQL看來,這是兩個分別向兩個表中插入的SQL語句而已,它不會從業務上考慮這兩個SQL實際的業務邏輯背景是什麼。所以此時他會看成是兩個SQL語句,也就是兩個事務。
這樣的情況下就需要手動的開啟事務。

⑶ SQL 對事務的管理包括哪幾方面

首先你得了解什麼是事務?
第一點:事務是一種機制.是一個操作序列,它包含一組資料庫操作命令,並且所有的命令作為一個整體一起向系統提交或撤消,即這一組資料庫命令要麼都執行,要麼都不執行.
第二點:你要了解事務的4個屬性,即ACID
原子性:事務是一個完整的操作
一致性:當事務完成時,數據是必須處於一致狀態
隔離性:對數據進修改的所有並發事務是彼此隔離的.
持久性:事務完成後,它對於系統的影響是永久的.

而你問如何管理事務,主要由下列語句
1.開始事務:begin tran
2.提交事務:commit tran
3.回滾事務:rollback tran
至於如何運用這些語句,其實很簡單,你在編寫事務SQL語句時,一定會存在if語句,也就是說,你認為對的,是正確的,就寫上提交事務,你認為錯了就回滾事務,但這些必須是語句最開頭寫上開始事務!

⑷ 請詳細解釋一下SQL中事務的定義以及實例。

事務是一種機制,是一個操作序列。事務包含了一組資料庫操作命令,所有的命令作為一個整體一起向系統提交或撤銷,這些命令要麼都執行要麼都不執行,因此事務是一個不可分割的邏輯工作單元。一個事務可能包括一條Transact-SQL語句,也可能包括多條Transact-SQL語句。
實例:設計一個簡單的事務。
USE 學生成績管理
GO
BEGIN TRAN -----開始一個事務
UPDATE 課程表 SET 學分=學分+1
DELETE FROM 成績表 WHERE 成績<60
COMMIT TRAN ------結束一個事務
GO

⑸ 誰能詳細介紹下sql中的「事務 」 ,不要百度答案,寫下自己的心得,不勝感激

sql事務就是你在執行update或者insert語句時,信息是否提交的控制,資料庫默認是直接提交,如果你一次執行2條sql,第一條成功了,第二條失敗了,你肯定想著兩條要麼都成功,要麼都失敗,這時候你就要用事務來控制,在兩條都成功後,提交事務,否則進行事務回滾

⑹ sql中什麼是事務啊

事務(Transaction),一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種數據項的一個程序執行單元(unit)。

事務通常由高級資料庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執行所引起,並用形如begin transaction和end transaction語句(或函數調用)來界定。

(6)sql命令行事務擴展閱讀

事務類型

(1)手動事務

手動事務允許顯式處理若干過程,這些過程包括:開始事務、控制事務邊界內的每個連接和資源登記、確定事務結果(提交或中止)以及結束事務。

(2)自動事務

.NET 頁、XML Web services方法或 .NET Framework 類一旦被標記為參與事務,它們將自動在事務范圍內執行。您可以通過在頁、XML Web services 方法或類中設置一個事務屬性值來控制對象的事務行為。