qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          數據庫中的事務、存儲過程和觸發器的簡單使用

           什么是事務(Transaction)
            指訪問并可能更新數據庫中各種數據項的一個程序執行單元(unit)--也就是由多個sql語句組成,必須作為一個整體執行
            這些sql語句作為一個整體一起向系統提交,要么都執行、要么都不執行
            語法步驟:
            開始事務:BEGIN TRANSACTION
            事務提交:COMMIT TRANSACTION
            事務回滾:ROLLBACK TRANSACTION
            判斷某條語句執行是否出錯:
            全局變量@@ERROR;
            @@ERROR只能判斷當前一條T-SQL語句執行是否有錯,為了判斷事務中所有T-SQL語句是否有錯,我們需要對錯誤進行累計;
            例:SET @errorSum=@errorSum+@@error
            存儲過程---就像數據庫中運行方法(函數)
            和C#里的方法一樣,由存儲過程名/存儲過程參數組成/可以有返回結果。
            前面學的if else/while/變量 等,都可以在存儲過程中使用
            優點:
            執行速度更快
            允許模塊化程序設計
            提高系統安全性
            減少網絡流通量
            系統存儲過程
            由系統定義,存放在master數據庫中
            名稱以“sp_”開頭或”xp_”開頭
            自定義存儲過程
            由用戶在自己的數據庫中創建的存儲過程
            系統存儲過程
            說明
            sp_databases
            列出服務器上的所有數據庫。
            sp_helpdb
            報告有關指定數據庫或所有數據庫的信息
            sp_renamedb
            更改數據庫的名稱
            sp_tables
            返回當前環境下可查詢的對象的列表
            sp_columns
            回某個表列的信息
            sp_help
            查看某個表的所有信息
            sp_helpconstraint
            查看某個表的約束
            sp_helpindex
            查看某個表的索引
            sp_stored_procedures
            列出當前環境中的所有存儲過程。  sp_password
            添加或修改登錄帳戶的密碼。
            sp_helptext
            顯示默認值、未加密的存儲過程、用戶定義的存儲過程、觸發器或視圖的實際文本。
            定義存儲過程的語法
            CREATE  PROC[EDURE]  存儲過程名
            @參數   數據類型 = 默認值 OUTPUT,
            @參數n  數據類型 = 默認值 OUTPUT
            AS
            SQL語句
            參數說明:
            參數可選
            參數分為輸入參數、輸出參數
            輸入參數允許有默認值
            EXEC  過程名  [參數]
            觸發器是一種特殊類型的存儲過程,它不同于前面介紹過的一般的存儲過程。
            一般的存儲過程通過存儲過程名稱被直接調用,而觸發器主要是通過事件進行觸發而被執行。
            觸發器是一個功能強大的工具,在表中數據發生變化時自動強制執行。觸發器可以用于SQL Server約束、默認值和規則的完整性檢查,還可以完成難以用普通約束實現的復雜功能。
            那究竟何為觸發器?在SQL Server里面也就是對某一個表的一定的操作,觸發某種條件,從而執行的一段程序。觸發器是一個特殊的存儲過程。
            常見的觸發器有三種:分別應用于Insert , Update , Delete 事件
            常用語法
          CREATE TRIGGER triggerName ON Table
          for UPDATE|INSERT|DELETE
          AS
          begin
          end
            觸發器-更新
          CREATE TRIGGER testForFun ON dbo.Category
          for UPDATE
          AS
          begin
          select * from book
          end
          update Category set c_name = 'Android2' where c_id=3
            觸發器-刪除
          CREATE TRIGGER testForDel ON dbo.Category
          for delete
          AS
          begin
          select * from book
          end
          delete Category set c_name = 'Android2' where c_id=3

          posted on 2014-03-27 17:06 順其自然EVO 閱讀(471) 評論(0)  編輯  收藏 所屬分類: 數據庫

          <2014年3月>
          2324252627281
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 若羌县| 贵定县| 新巴尔虎右旗| 横峰县| 平阴县| 平果县| 寿光市| 长汀县| 鹿泉市| 浦城县| 佛坪县| 乡宁县| 乳山市| 浦县| 耿马| 阿鲁科尔沁旗| 嘉禾县| 太保市| 镇巴县| 田东县| 奉新县| 长乐市| 吉林市| 高雄市| 子长县| 揭阳市| 闽清县| 定结县| 嘉禾县| 双城市| 灵武市| 新宁县| 平乡县| 潮州市| 台南县| 宁德市| 娄底市| 开远市| 奇台县| 启东市| 永安市|