9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦>生活課堂>生活小常識>

存儲過程和事務的區別

時間: 稱紅1024 分享

  存儲過程和事務的區別想必很多人都不是很了解,一起來看看吧。下面是學習啦小編給大家整理的存儲過程和事務的區別,供大家參閱!

  存儲過程和事務的區別

  存儲過程:是SQL-Server服務器上一組預先編譯好的T-SQL語句。以一個名稱存儲在數據庫中,作為一個獨立的數據庫對象。

  有以下優點:

  1、執行速度快;

  2、提高工作效率;

  3、規范程序設計;

  4、提高系統安全性。

  事務:一般是指用戶定義的一序列操作,這些操作要么全做,要么都不做,是不可分割的一個工作單位.他是一個邏輯工作單元,同時又是一個恢復單元,一個事務提交以后數據庫又處與另一個一致狀態.具體的關于他的操作去找書看吧.

  事務中可以有存儲過程

  存儲過程中也可以有事務

  事務是一系列的對數據庫的操作,這些操作包括存儲過程,更改語句及其它操作。開始語句是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--返回,不再繼續執行

  END

  ELSE

  COMMIT TRANSACTION--操作成功,確認所作修改

  GO

  存儲過程的優勢

  (1) 能實現模塊化程序設計。存儲過程是根據實際功能的需要創建的一個程序模塊,并被存儲在數據庫中。以后用戶要完成該功能,只要在程序中直接調用該存儲過程即可,而無需再編寫重復的程序代碼。存儲過程可由數據庫編程方面的專門人員創建,并可獨立于程序源代碼而進行修改和擴展。

  (2) 使用存儲過程可以提高執行效率。當客戶程序需要訪問服務器上的數據時,一般要經過5個步驟:

  ● 查詢語句被發送到服務器;

  ● 服務器編譯T-SQL語句;

  ● 優化產生查詢執行計劃;

  ● 數據庫引擎執行查詢;

  ● 執行結果發回客戶程序。

  如果執行存儲在客戶端本地的T-SQL程序,那么每次執行該程序時,對于程序中的每一條語句都要經過以上5個步驟。而存儲過程在創建時就被編譯和優化,當存儲過程第一次被執行時,SQL Server為其產生查詢計劃并將其保存在內存中,這樣以后在調用該存儲過程時就不必再進行編譯,即以上5個步驟中的第2步和第3步就被省略了,這能大大改善系統的性能。

  (3) 減少網絡流量。一個需要數百行T-SQL代碼的操作,如果將其創建成存儲過程,那么使用一條調用存儲過程的語句就可完成該操作。這樣就可避免在網絡上發送數百行代碼,從而減少了網絡負荷。

  (4) 可作為安全機制使用。管理員可以不授予用戶訪問存儲過程中涉及的表的權限,而只授予執行存儲過程的權限。這樣,既可以保證用戶通過存儲過程操縱數據庫中的數據,又可以保證用戶不能直接訪問存儲過程中涉及的表。用戶通過存儲過程來訪問表,所能進行的操作是有限制的,從而保證了表中數據的安全性。

  存儲過程的類型

  (1) 系統存儲過程

  在SQL Server中的許多管理工作是通過執行系統存儲過程來完成的。系統存儲過程創建和保存在master數據庫中,都以sp_為名稱的前綴。系統存儲過程是SQL Server系統自帶的,具有執行系統存儲過程權限的用戶,可在master數據庫之外直接調用。一般情況下,系統存儲過程執行成功返回0值,若有錯誤發生返回非0值。

  (2) 擴展存儲過程

  擴展存儲過程是以動態鏈接庫(dll)形式存在的外部程序。SQL Server自身帶了大量的擴展存儲過程安裝在master數據庫中,擴展存儲過程與普通存儲過程執行方法相同。

  若擴展存儲過程的前綴為sp_,則該擴展存儲過程在master數據庫之外也可直接調用;否則,必須在擴展存儲過程前面加上“master.dbo.”前綴。開發人員可以使用其他編程語言來創建擴展存儲過程,編寫好擴展存儲過程后,可由sysadmin服務器角色的成員在 SQL Server 中注冊該擴展存儲過程,然后授予其他用戶執行該過程的權限。擴展存儲過程只能添加到 master 數據庫中,利用擴展存儲過程可以擴展SQL Server的功能。

  (3) 用戶存儲過程

  用戶存儲過程是由用戶根據實際問題的需要所創建的存儲過程。固定服務器角色sysadmin 的成員可根據實際需要在master數據庫中創建用戶存儲過程,若使用sp_做存儲過程的前綴,則該存儲過程在任何位置均可直接調用,否則,必須在該存儲過程前面加上“master.dbo.”前綴。對于在用戶數據庫中創建的存儲過程,最好不要使用sp_作為其名稱的前綴,否則如果該存儲過程與系統存儲過程同名,則該存儲過程永遠不會被執行。并且若在該用戶數據庫之外調用該存儲過程,也必須在存儲過程名的前面加上“用戶數據庫名.所有者名.”前綴才能找著、執行該存儲過程。

存儲過程和事務的區別相關文章:

1.自動輸出SQLServer存儲過程依賴列表到EXCEL文件

存儲過程和事務的區別

存儲過程和事務的區別想必很多人都不是很了解,一起來看看吧。下面是學習啦小編給大家整理的存儲過程和事務的區別,供大家參閱! 存儲過程和事務的區別 存儲過程:是SQL-Server服務器上一組預先編譯好的T-SQL語句。以一個名稱存儲在數據
推薦度:
點擊下載文檔文檔為doc格式

精選文章

  • 存儲過程和函數的區別
    存儲過程和函數的區別

    存儲過程和函數的區別你想知道嗎?下面是學習啦小編給大家整理的存儲過程和函數的區別,供大家參閱! 存儲過程和函數的區別 存儲過程和函數的不同之

  • 村委會與居委會的區別
    村委會與居委會的區別

    一談到村委會與居委會的區別想必很多人都懵了,一起來看看吧。下面是學習啦小編給大家整理的村委會與居委會的區別,供大家參閱! 村委會與居委會的

  • 村淘和淘寶的區別
    村淘和淘寶的區別

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

  • 萃取液和原液的區別
    萃取液和原液的區別

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

3630468 主站蜘蛛池模板: 开心色怡人综合网站| 亚洲精品一区二区五月天| 高清美女视频一区二区三区| 久久综合狠狠综合久久| 亚洲国产成人综合自在线| 亚洲色偷偷色噜噜狠狠99| 自拍日韩亚洲一区在线| 日韩精品有码中文字幕| 无码天堂亚洲国产av麻豆| 欧美成人精品三级网站视频| 国产97视频人人做人人爱| 免费午夜无码片在线观看影院| 亚洲乱码中文字幕小综合| 国内精品免费久久久久电影院97| 国产精品亚洲综合网一区| 国产成人无码免费视频麻豆| 亚洲av日韩av一区久久| 《特殊的精油按摩》3| 中文字幕国产精品综合| 国产欧洲欧洲久美女久久| 国产AV巨作丝袜秘书| 亚洲欧美成人一区二区三区| 亚洲人成电影网站 久久影视| 亚洲精品综合网中文字幕| 狠狠色丁香婷婷综合尤物| 日本边添边摸边做边爱| 欧美一区二区三区欧美日韩亚洲 | 亚洲一区二区三区自拍偷拍 | 狠狠色噜噜狠狠狠狠av不卡| 久久亚洲精品中文字幕馆| 综合亚洲网| 欧美黑人XXXX性高清版| 18禁网站免费无遮挡无码中文 | 波多野结衣av无码| 开心五月婷婷综合网站| 国产精品成人av电影不卡| 中文字幕乱码人妻二区三区| 久久香蕉国产线看观看怡红院妓院 | 日韩av无码精品人妻系列| 一级片免费网站| 国产成人高清亚洲综合|