1樓:匿名使用者
儲存過程就相當於程式語言中的函式或方法,根據使用者給定的引數執行一段**
例:你給我20分,我從鍵盤輸入文字,回答問題,並提交答案.我所做的就是一個儲存過程,你給的20分是引數,你給的分多,我就回答的詳細
事務是一種機制,確保一組資料庫命令,要麼全都執行,要麼都不執行例:你到銀行轉帳1000元到我的賬戶裡,當錢剛從你的賬戶裡取出來(還沒來的及轉入我的賬戶),突然斷電了,這時你的賬戶就莫名其妙的損失了1000元,事務就是為了避免這種情況,只有當你的賬戶減少1000,並且我的賬戶存入1000之後,這個轉帳才算成功,所以就要將"存款"和"取款"寫到一個事務中去
2樓:匿名使用者
儲存過程相當於c語言中的函式,它是sql語句和控制流的預編譯集合.儲存過程可包含邏輯控制和資料操控,它可以接受引數,輸出引數,返回單個或多個結果集以及返回值
3樓:匿名使用者
例:(帶的*是引數)
create proc[edure] //name[= 預設值] [output],
.[=.]
assql語句
例:(不帶的)
create proc[edure] //name[ [= 預設值] [output],.[= .] [output],]as
sql語句
output有視為輸出,否則視為輸入
4樓:匿名使用者
詳細解釋
事務與儲存過程是什麼關係?
5樓:匿名使用者
2個不同的東西,沒什麼關係
儲存過程是sql2000開始流行的
儲存過程可以被程式讀取,可以更方法一樣用
6樓:
事務中可以有儲存過程
儲存過程中也可以有事務
事務是一系列的對資料庫的操作,這些操作包括儲存過程,更改語句及其它操作。開始語句是begin transaction (事務開始),結束語句有兩種,一個是rollback--回滾,一個是--commit提交事務的所有操作。
儲存過程是實現一定功能的語句組成的程式段。可以包括事務,也可以在某事務當中。
這是一個包括一個事務處理過程的儲存過程,並且在事務中也包括另一個儲存過程的操作:
creatte procedure myprocedure
as begin transaction--開始一個事務
update tablename set abc='def' where ......--操作
exec otherprocedure '引數' --事務中包括的儲存過程
if @@error>0--操作如果失敗
begin
rollback transaction--回滾
raiserror('更改資料失敗!',16,1)--向前臺報錯
return--返回,不再繼續執行
endelse
commit transaction--操作成功,確認所作修改go
7樓:
有關係.
儲存過程是一組預編譯的sql語句.
事務就是決定當前執行的操作是統一提交,或者是統一回滾.
而且通常情況下,都是儲存過程巢狀事務.
呵呵....
很片面.
8樓:匿名使用者
儲存過程:是sql-server伺服器上一組預先編譯好的t-sql語句。以一個名稱儲存在資料庫中,作為一個獨立的資料庫物件。
有以下優點:
1、執行速度快;
2、提高工作效率;
3、規範程式設計;
4、提高系統安全性。
事務:一般是指使用者定義的一序列操作,這些操作要麼全做,要麼都不做,是不可分割的一個工作單位.他是一個邏輯工作單元,同時又是一個恢復單元,一個事務提交以後資料庫又處與另一個一致狀態.
具體的關於他的操作去找書看吧.
事務和儲存過程的區別??
9樓:匿名使用者
事務是使用者定義的一個資料庫操作序列,這些操作要麼全做,要麼全不做,是一個不可分割的工作單位
儲存過程是一組為了完成特定功能的sql語句集(或者自定義資料庫操作命令集)
10樓:太平洋來的風
感覺樓下的回答很可以.
事務,有隱式事務,也有顯式事務. 我們程式設計常使用顯式事務
11樓:王勒然
同意一樓的答案!!ding
mysql中事務和儲存過程的區別
12樓:匿名使用者
儲存過程是:
通過一系列的sql語句, 根據傳入的引數(也可以沒有), 通過簡單的呼叫,
完成比單個sql語句更復雜的功能, 儲存在資料庫伺服器端,只需要編譯過一次之後再次使用都不需要再進行編譯。主要對儲存的過程進行控制。
事務是一系列的資料更改操作組成的一個整體。一旦事務中包含的某操作失敗或使用者中止,使用者可以控制將事務體中所有操作撤消,返回事務開始前的狀態。
事務中的操作是一個整體,要麼整體完成,要麼全部不做。從而保證了資料的完整性。
mysql中,myisam儲存引擎不支援事務,innodb支援。
兩者都是資料庫中非常重要的知識。
關於儲存過程與事務
13樓:
這兩個概念可以說是兩個範疇的概念,事務是資料庫操作範疇的概念,保證資料庫資料的完整性和一致性;儲存過程是高階程式設計中模組化設計思想的重要內容。
事務是包含一組修改(插入、更新和刪除)的工作的邏輯單位。事務的操作要麼被儲存到資料庫commit,要麼回滾rollback,事務中的所有修改要麼全部提交,要麼什麼也不做,這樣保證了資料庫中資料的完整性和一致性。
資料庫操作中為了完成一個完整的資料庫任務,從而引進高階程式的設計要素。過程就是高階程式設計語言中的模組概念,將一些內部聯絡的命令組成一個個過程,通過引數在過程間傳遞資料來完成一個完整的資料庫任務,這就是模組化設計思想的重要內容。
有的時候可以把一個過程看作一個事務,但是有的過程執行過程中因為滿足某些條件而從過程中跳出,這時就不能把過程看作事務;反之,一個事務可能是一個過程,也可能一個事務中包含對一個或多個過程的呼叫。
二者概念所述的範疇不同,在資料庫中,是相互聯絡相互區別的;而且兩者都是具體的,不是抽象的,因為都可以拿出一段**,說它是事務或是儲存過程。
以上是個人理解,希望對你有所幫助。
14樓:
不對,是兩個概念,儲存過程是完成一定功能的可重複呼叫的程式。
即,儲存過程是程式。
事務是可以整個撤消的一段操作,可能是一個或幾個或部份的儲存過程,也可能是一條或幾條指令,事務是記錄的一系列的操作和變化。
15樓:
事務是要看成一個整體(原子性)要不這件事就全不做,要麼就全都做,而儲存過程就相當於程式語言裡的函式,方便呼叫,這就是我的理解
16樓:
儲存過程是具體的,多語句組成的一個過程,和程式裡的函式差不多
事務是抽象的概念,就是把一件事分成幾個步驟,設定一個點,回滾就是回到前面的一個點
17樓:
你只說對了一部分
他們是配合使用的 如果只是用儲存過程的話 那他則將執行成功的寫入資料庫 而將失敗的拋棄不管 那樣就與普通sql語句沒有區別了
事務是保證成功執行的必要條件 要麼就執行全部 要麼就回滾
18樓:匿名使用者
儲存過程與事務是兩個概念。
事務強調整體性,要麼成功了全部執行,要麼失敗了全部回滾。
儲存過程本身沒有這個特點。
不過,凡事不是定死的,有許多變通的餘地:
第一,你可以用同步的思想強行將儲存過程進行互斥,比如,你的資料訪問層要呼叫某個儲存過程,那麼你用synchronized修飾程式,保證此儲存過程不會被同時多執行緒執行;
第二,你可以在儲存過程裡開啟事務,強制性規定此過程就是一個事務。
19樓:從掃將到少將
儲存過程,可重用需要,效率需要。
事務,不成功,便成仁。^_^
20樓:匿名使用者
想學習煮菜麼!**入:181998152
sqlserver 儲存過程事務回滾怎麼寫?
21樓:
begin tran
。。。。。。
在儲存過程後面加上:
if @@error<>0
rollback tran
else
commit tran
sqlserver儲存過程當有return時事務怎麼寫 5
22樓:匿名使用者
直接在儲存過程結束之前新增以下**:
exception when others then rollback;
解釋:以上語句的意思是當出現任何錯誤的時候,直接回滾整個事務。
備註:儲存過程中建議沒有特殊需求的情況下,在執行結束之前不要進行commit,否則在中途提交,後面的**儲存,只能回滾到commit的位置。
如何使用SQL語句檢視儲存過程的內容
下面這條語句可以檢視儲存過程具體 exec sp helptext 儲存過程名 下面這條語句檢視資料庫中有哪些儲存過程select from sysobjects where type p 利用資料字典檢視檢視當前使用者所有儲存過程及其 select name,text from user sour...
sql中的檢視與儲存過程有什麼不同的
sql中檢視 view 和儲存過程 procedure 的區別 view本身就是顯示一個 view可以顯示出 但是view本身並沒有包括任何資料,view也不接受引數,所以其實view就是一個虛擬的 而不是實際的,所以在需要引數的時候,需要提前在建立view的時候定義好。view一般是給外部非專業i...
在sql中儲存過程的一般語法是什麼
1 建立語法 create proc procedure pro name 預設值 output 預設值 output as sql statements 2 建立不帶引數儲存過程 建立儲存過程 if exists select from sys.objects where name proc ge...