<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      SQL Server 中的事務(wù)管理

      SQL Server 中的事務(wù)是什么?

      • 事務(wù)是應(yīng)該作為一個(gè)單元執(zhí)行的一組 SQL 語(yǔ)句。這意味著事務(wù)確保所有命令都成功或都不成功。如果事務(wù)中的命令之一失敗,則所有命令都失敗,并且在數(shù)據(jù)庫(kù)中修改的任何數(shù)據(jù)都將回滾。

      比如您在做一個(gè)銀行轉(zhuǎn)賬操作,這涉及了2個(gè)操作, 扣款和收款, 必須保證這2個(gè)操作都成功,或者都失敗, 只把你的錢扣了,對(duì)方?jīng)]收到,肯定不行的 (有一個(gè)操作失敗了,都應(yīng)該回滾到初始狀態(tài))

      如何在 SQL Server 中實(shí)現(xiàn)事務(wù)管理?

      SQL Server 為我們提供了4個(gè)命令來實(shí)現(xiàn)管理事務(wù)

      1. 開啟事務(wù): begin transaction (可簡(jiǎn)寫為 begin tran, 表示事務(wù)已開始)
      2. 提交事務(wù): commit (表示事務(wù)已成功完成,自事務(wù)開始以來執(zhí)行的所有數(shù)據(jù)操作操作都提交到數(shù)據(jù)庫(kù),并釋放事務(wù)占用的資源。)
      3. 回滾事務(wù): rollback transaction (表示事務(wù)失敗,會(huì)將數(shù)據(jù)回滾到之前的狀態(tài)。)
      4. 保存事務(wù): save transaction (這用于將事務(wù)劃分為多個(gè)單元,以便用戶有機(jī)會(huì)將事務(wù)回滾到某個(gè)點(diǎn)或位置。)

      在 SQL Server 中實(shí)現(xiàn)事務(wù)的示例:

      請(qǐng)使用以下 SQL 腳本創(chuàng)建并使用所需的測(cè)試數(shù)據(jù)填充 Product 表。

      IF OBJECT_ID('dbo.Product') IS NOT NULL
          DROP TABLE dbo.Product
      GO
      CREATE TABLE dbo.Product
      (
          ProductID INT PRIMARY KEY, 
          Name VARCHAR(40), 
          Price INT,
          Quantity INT
      )
      GO
      INSERT INTO Product VALUES(101, 'Product-1', 100, 10)
      INSERT INTO Product VALUES(102, 'Product-2', 200, 15)
      INSERT INTO Product VALUES(103, 'Product-3', 300, 20)
      INSERT INTO Product VALUES(104, 'Product-4', 400, 25)
      

      SQL Server 中的 COMMIT 示例。

      BEGIN TRANSACTION
       INSERT INTO Product VALUES (105,'Product-5',500, 30)
       UPDATE Product SET Price = 350 WHERE ProductID = 103
       DELETE FROM Product WHERE ProductID = 103
      COMMIT TRANSACTION
      

      一旦提交事務(wù),就不能回滾上述三個(gè)語(yǔ)句。提交事務(wù)后,現(xiàn)在您的產(chǎn)品將具有以下數(shù)據(jù)。

      ProductID Name Price Quantity
      101 Product-1 100 10
      102 Product-2 200 15
      104 Product-4 400 25
      105 Product-5 500 30

      SQL Server 中的 ROLLBACK TRANSACTION 示例

      SQL Server 中的 Rollback 命令用于撤消尚未保存到數(shù)據(jù)庫(kù)中的事務(wù),并從事務(wù)開始處恢復(fù)到初始狀態(tài)。因此,如果您想將數(shù)據(jù)恢復(fù)到之前的狀態(tài),那么您需要在寫入 SQL 語(yǔ)句后的任何時(shí)間使用 ROLLBACK 命令,但請(qǐng)記住,一旦寫入 COMMIT ,我們就無法回滾數(shù)據(jù)。

      請(qǐng)執(zhí)行以下語(yǔ)句以了解回滾命令。

      BEGIN TRANSACTION
      INSERT INTO Product VALUES(106,'Product-6',600, 30)
      UPDATE Product SET Price =550 WHERE ProductID = 105
      DELETE FROM Product WHERE ProductID = 104
      

      當(dāng)您執(zhí)行上述事務(wù)并且您可以看到該事務(wù)未提交,您有機(jī)會(huì)使用 Rollback Transaction 命令回滾表上的所有操作。

      了解 SQL Server 中的 @@Error 全局變量:

      這是一個(gè)全局變量,我們可以使用這個(gè)變量來檢查是否有任何錯(cuò)誤。讓我們看一個(gè)例子來理解這一點(diǎn)。正如您在下面的示例中看到的,首先我們使用 Begin Transaction 語(yǔ)句啟動(dòng)事務(wù)。然后我們編寫兩個(gè)插入語(yǔ)句。然后我們使用全局系統(tǒng)變量@@ERROR 檢查是否有錯(cuò)誤。大于 0 的值意味著存在一些錯(cuò)誤。如果有一些錯(cuò)誤,那么我們回滾事務(wù),否則我們提交事務(wù)。

      BEGIN TRANSACTION
          INSERT INTO Product VALUES(110,'Product-10',600, 30)
          INSERT INTO Product VALUES(110,'Product-10',600, 30)
      IF(@@ERROR > 0)
          BEGIN
              Rollback Transaction
          END
      ELSE
          BEGIN
          Commit Transaction
          END
      

      執(zhí)行上述事務(wù)后,您將看到事務(wù)回滾了。這是因?yàn)槲覀儑L試在主鍵列中插入重復(fù)值。

      為什么我們需要 SQL Server 中的事務(wù)?

      我們需要 SQL Server 中的事務(wù)來保護(hù)企業(yè)數(shù)據(jù)(使企業(yè)數(shù)據(jù)保持一致并實(shí)現(xiàn)數(shù)據(jù)完整性)。事務(wù)是對(duì)數(shù)據(jù)庫(kù)的一項(xiàng)或多項(xiàng)更改的傳播。例如,如果我們正在創(chuàng)建一條記錄或更新一條記錄,或者從表中刪除一條記錄,那么我們正在對(duì)表執(zhí)行事務(wù)。控制事務(wù)以確保數(shù)據(jù)完整性和處理數(shù)據(jù)庫(kù)錯(cuò)誤非常重要。

      SQL Server 中事務(wù)的經(jīng)驗(yàn)法則是什么?

      SQL Server 中的事務(wù)規(guī)則告訴事務(wù)中的所有語(yǔ)句都應(yīng)該成功執(zhí)行,或者這些語(yǔ)句都不執(zhí)行。

      posted @ 2022-07-12 17:41  Broadm  閱讀(1907)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 日韩精品人妻黄色一级片| 国产日韩av二区三区| 蜜桃av无码免费看永久| 91青青草视频在线观看| 亚洲av日韩av中文高清性色| 日本久久99成人网站| 在线天堂中文www官网| 久久久久久免费一区二区三区| 欧美疯狂xxxxbbbb喷潮| 在线综合亚洲欧洲综合网站| 国产91色综合久久高清| 91精品人妻中文字幕色| 视频一区二区三区自拍偷拍| 国产一区二区三区av在线无码观看| 亚洲一区av无码少妇电影| 亚洲国产码专区在线观看| 成人国产精品一区二区网站公司| 国产95在线 | 欧美| 欧美国产日韩久久mv| 国产精品久久久久婷婷五月| 亚洲一区二区三区四区| 日本久久99成人网站| 精品人妻免费看一区二区三区| 免费无码一区无码东京热| 92国产精品午夜福利免费| 色综合热无码热国产| 欧美视频二区欧美影视| 亚洲嫩模喷白浆在线观看| 龙川县| 国产精品污双胞胎在线观看| 欧美人与动牲交A免费观看| 无码一级视频在线| 日韩亚洲精品中文字幕| 欧洲码亚洲码的区别入口 | 激情五月日韩中文字幕| 麻豆成人久久精品二区三| 国产一区二区av天堂热| 97精品人妻系列无码人妻| 日本视频一区二区三区1| 免费看又黄又无码的网站| 欧美videos粗暴|