六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學(xué)習(xí)啦>生活課堂>生活小常識(shí)>

存儲(chǔ)過(guò)程和事務(wù)的區(qū)別

時(shí)間: 稱紅1024 分享

  存儲(chǔ)過(guò)程和事務(wù)的區(qū)別想必很多人都不是很了解,一起來(lái)看看吧。下面是學(xué)習(xí)啦小編給大家整理的存儲(chǔ)過(guò)程和事務(wù)的區(qū)別,供大家參閱!

  存儲(chǔ)過(guò)程和事務(wù)的區(qū)別

  存儲(chǔ)過(guò)程:是SQL-Server服務(wù)器上一組預(yù)先編譯好的T-SQL語(yǔ)句。以一個(gè)名稱存儲(chǔ)在數(shù)據(jù)庫(kù)中,作為一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)對(duì)象。

  有以下優(yōu)點(diǎn):

  1、執(zhí)行速度快;

  2、提高工作效率;

  3、規(guī)范程序設(shè)計(jì);

  4、提高系統(tǒng)安全性。

  事務(wù):一般是指用戶定義的一序列操作,這些操作要么全做,要么都不做,是不可分割的一個(gè)工作單位.他是一個(gè)邏輯工作單元,同時(shí)又是一個(gè)恢復(fù)單元,一個(gè)事務(wù)提交以后數(shù)據(jù)庫(kù)又處與另一個(gè)一致?tīng)顟B(tài).具體的關(guān)于他的操作去找書看吧.

  事務(wù)中可以有存儲(chǔ)過(guò)程

  存儲(chǔ)過(guò)程中也可以有事務(wù)

  事務(wù)是一系列的對(duì)數(shù)據(jù)庫(kù)的操作,這些操作包括存儲(chǔ)過(guò)程,更改語(yǔ)句及其它操作。開(kāi)始語(yǔ)句是BEGIN TRANSACTION (事務(wù)開(kāi)始),結(jié)束語(yǔ)句有兩種,一個(gè)是ROLLBACK--回滾,一個(gè)是--commit提交事務(wù)的所有操作。

  存儲(chǔ)過(guò)程是實(shí)現(xiàn)一定功能的語(yǔ)句組成的程序段??梢园ㄊ聞?wù),也可以在某事務(wù)當(dāng)中。

  這是一個(gè)包括一個(gè)事務(wù)處理過(guò)程的存儲(chǔ)過(guò)程,并且在事務(wù)中也包括另一個(gè)存儲(chǔ)過(guò)程的操作:

  CREATTE PROCEDURE MYPROCEDURE

  AS

  BEGIN TRANSACTION--開(kāi)始一個(gè)事務(wù)

  UPDATE TABLENAME SET ABC='DEF' WHERE ......--操作

  EXEC OTHERPROCEDURE '參數(shù)' --事務(wù)中包括的存儲(chǔ)過(guò)程

  IF @@ERROR>0--操作如果失敗

  BEGIN

  ROLLBACK TRANSACTION--回滾

  RAISERROR('更改數(shù)據(jù)失敗!',16,1)--向前臺(tái)報(bào)錯(cuò)

  RETURN--返回,不再繼續(xù)執(zhí)行

  END

  ELSE

  COMMIT TRANSACTION--操作成功,確認(rèn)所作修改

  GO

  存儲(chǔ)過(guò)程的優(yōu)勢(shì)

  (1) 能實(shí)現(xiàn)模塊化程序設(shè)計(jì)。存儲(chǔ)過(guò)程是根據(jù)實(shí)際功能的需要?jiǎng)?chuàng)建的一個(gè)程序模塊,并被存儲(chǔ)在數(shù)據(jù)庫(kù)中。以后用戶要完成該功能,只要在程序中直接調(diào)用該存儲(chǔ)過(guò)程即可,而無(wú)需再編寫重復(fù)的程序代碼。存儲(chǔ)過(guò)程可由數(shù)據(jù)庫(kù)編程方面的專門人員創(chuàng)建,并可獨(dú)立于程序源代碼而進(jìn)行修改和擴(kuò)展。

  (2) 使用存儲(chǔ)過(guò)程可以提高執(zhí)行效率。當(dāng)客戶程序需要訪問(wèn)服務(wù)器上的數(shù)據(jù)時(shí),一般要經(jīng)過(guò)5個(gè)步驟:

  ● 查詢語(yǔ)句被發(fā)送到服務(wù)器;

  ● 服務(wù)器編譯T-SQL語(yǔ)句;

  ● 優(yōu)化產(chǎn)生查詢執(zhí)行計(jì)劃;

  ● 數(shù)據(jù)庫(kù)引擎執(zhí)行查詢;

  ● 執(zhí)行結(jié)果發(fā)回客戶程序。

  如果執(zhí)行存儲(chǔ)在客戶端本地的T-SQL程序,那么每次執(zhí)行該程序時(shí),對(duì)于程序中的每一條語(yǔ)句都要經(jīng)過(guò)以上5個(gè)步驟。而存儲(chǔ)過(guò)程在創(chuàng)建時(shí)就被編譯和優(yōu)化,當(dāng)存儲(chǔ)過(guò)程第一次被執(zhí)行時(shí),SQL Server為其產(chǎn)生查詢計(jì)劃并將其保存在內(nèi)存中,這樣以后在調(diào)用該存儲(chǔ)過(guò)程時(shí)就不必再進(jìn)行編譯,即以上5個(gè)步驟中的第2步和第3步就被省略了,這能大大改善系統(tǒng)的性能。

  (3) 減少網(wǎng)絡(luò)流量。一個(gè)需要數(shù)百行T-SQL代碼的操作,如果將其創(chuàng)建成存儲(chǔ)過(guò)程,那么使用一條調(diào)用存儲(chǔ)過(guò)程的語(yǔ)句就可完成該操作。這樣就可避免在網(wǎng)絡(luò)上發(fā)送數(shù)百行代碼,從而減少了網(wǎng)絡(luò)負(fù)荷。

  (4) 可作為安全機(jī)制使用。管理員可以不授予用戶訪問(wèn)存儲(chǔ)過(guò)程中涉及的表的權(quán)限,而只授予執(zhí)行存儲(chǔ)過(guò)程的權(quán)限。這樣,既可以保證用戶通過(guò)存儲(chǔ)過(guò)程操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù),又可以保證用戶不能直接訪問(wèn)存儲(chǔ)過(guò)程中涉及的表。用戶通過(guò)存儲(chǔ)過(guò)程來(lái)訪問(wèn)表,所能進(jìn)行的操作是有限制的,從而保證了表中數(shù)據(jù)的安全性。

  存儲(chǔ)過(guò)程的類型

  (1) 系統(tǒng)存儲(chǔ)過(guò)程

  在SQL Server中的許多管理工作是通過(guò)執(zhí)行系統(tǒng)存儲(chǔ)過(guò)程來(lái)完成的。系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建和保存在master數(shù)據(jù)庫(kù)中,都以sp_為名稱的前綴。系統(tǒng)存儲(chǔ)過(guò)程是SQL Server系統(tǒng)自帶的,具有執(zhí)行系統(tǒng)存儲(chǔ)過(guò)程權(quán)限的用戶,可在master數(shù)據(jù)庫(kù)之外直接調(diào)用。一般情況下,系統(tǒng)存儲(chǔ)過(guò)程執(zhí)行成功返回0值,若有錯(cuò)誤發(fā)生返回非0值。

  (2) 擴(kuò)展存儲(chǔ)過(guò)程

  擴(kuò)展存儲(chǔ)過(guò)程是以動(dòng)態(tài)鏈接庫(kù)(dll)形式存在的外部程序。SQL Server自身帶了大量的擴(kuò)展存儲(chǔ)過(guò)程安裝在master數(shù)據(jù)庫(kù)中,擴(kuò)展存儲(chǔ)過(guò)程與普通存儲(chǔ)過(guò)程執(zhí)行方法相同。

  若擴(kuò)展存儲(chǔ)過(guò)程的前綴為sp_,則該擴(kuò)展存儲(chǔ)過(guò)程在master數(shù)據(jù)庫(kù)之外也可直接調(diào)用;否則,必須在擴(kuò)展存儲(chǔ)過(guò)程前面加上“master.dbo.”前綴。開(kāi)發(fā)人員可以使用其他編程語(yǔ)言來(lái)創(chuàng)建擴(kuò)展存儲(chǔ)過(guò)程,編寫好擴(kuò)展存儲(chǔ)過(guò)程后,可由sysadmin服務(wù)器角色的成員在 SQL Server 中注冊(cè)該擴(kuò)展存儲(chǔ)過(guò)程,然后授予其他用戶執(zhí)行該過(guò)程的權(quán)限。擴(kuò)展存儲(chǔ)過(guò)程只能添加到 master 數(shù)據(jù)庫(kù)中,利用擴(kuò)展存儲(chǔ)過(guò)程可以擴(kuò)展SQL Server的功能。

  (3) 用戶存儲(chǔ)過(guò)程

  用戶存儲(chǔ)過(guò)程是由用戶根據(jù)實(shí)際問(wèn)題的需要所創(chuàng)建的存儲(chǔ)過(guò)程。固定服務(wù)器角色sysadmin 的成員可根據(jù)實(shí)際需要在master數(shù)據(jù)庫(kù)中創(chuàng)建用戶存儲(chǔ)過(guò)程,若使用sp_做存儲(chǔ)過(guò)程的前綴,則該存儲(chǔ)過(guò)程在任何位置均可直接調(diào)用,否則,必須在該存儲(chǔ)過(guò)程前面加上“master.dbo.”前綴。對(duì)于在用戶數(shù)據(jù)庫(kù)中創(chuàng)建的存儲(chǔ)過(guò)程,最好不要使用sp_作為其名稱的前綴,否則如果該存儲(chǔ)過(guò)程與系統(tǒng)存儲(chǔ)過(guò)程同名,則該存儲(chǔ)過(guò)程永遠(yuǎn)不會(huì)被執(zhí)行。并且若在該用戶數(shù)據(jù)庫(kù)之外調(diào)用該存儲(chǔ)過(guò)程,也必須在存儲(chǔ)過(guò)程名的前面加上“用戶數(shù)據(jù)庫(kù)名.所有者名.”前綴才能找著、執(zhí)行該存儲(chǔ)過(guò)程。

存儲(chǔ)過(guò)程和事務(wù)的區(qū)別相關(guān)文章:

1.自動(dòng)輸出SQLServer存儲(chǔ)過(guò)程依賴列表到EXCEL文件

存儲(chǔ)過(guò)程和事務(wù)的區(qū)別

存儲(chǔ)過(guò)程和事務(wù)的區(qū)別想必很多人都不是很了解,一起來(lái)看看吧。下面是學(xué)習(xí)啦小編給大家整理的存儲(chǔ)過(guò)程和事務(wù)的區(qū)別,供大家參閱! 存儲(chǔ)過(guò)程和事務(wù)的區(qū)別 存儲(chǔ)過(guò)程:是SQL-Server服務(wù)器上一組預(yù)先編譯好的T-SQL語(yǔ)句。以一個(gè)名稱存儲(chǔ)在數(shù)據(jù)
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • 存儲(chǔ)過(guò)程和函數(shù)的區(qū)別
    存儲(chǔ)過(guò)程和函數(shù)的區(qū)別

    存儲(chǔ)過(guò)程和函數(shù)的區(qū)別你想知道嗎?下面是學(xué)習(xí)啦小編給大家整理的存儲(chǔ)過(guò)程和函數(shù)的區(qū)別,供大家參閱! 存儲(chǔ)過(guò)程和函數(shù)的區(qū)別 存儲(chǔ)過(guò)程和函數(shù)的不同之

  • 村委會(huì)與居委會(huì)的區(qū)別
    村委會(huì)與居委會(huì)的區(qū)別

    一談到村委會(huì)與居委會(huì)的區(qū)別想必很多人都懵了,一起來(lái)看看吧。下面是學(xué)習(xí)啦小編給大家整理的村委會(huì)與居委會(huì)的區(qū)別,供大家參閱! 村委會(huì)與居委會(huì)的

  • 村淘和淘寶的區(qū)別
    村淘和淘寶的區(qū)別

    村淘和淘寶目的都是為了購(gòu)物,那二者存在什么樣的區(qū)別呢?下面是學(xué)習(xí)啦小編給大家整理的村淘和淘寶的區(qū)別,供大家參閱! 村淘和淘寶的區(qū)別 村淘-全稱

  • 萃取液和原液的區(qū)別
    萃取液和原液的區(qū)別

    萃取液和原液都是液體的,那么你知道它們有什么樣的區(qū)別嗎?下面是學(xué)習(xí)啦小編給大家整理的萃取液和原液的區(qū)別,供大家參閱! 萃取液和原液的區(qū)別 萃

3630468