日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
SQLServer數(shù)據(jù)庫(kù)利用SQL語(yǔ)句使用事務(wù)詳解

SQL Server數(shù)據(jù)庫(kù)中對(duì)事務(wù)的使用是本文我們要介紹的內(nèi)容,我們首先創(chuàng)建數(shù)據(jù)庫(kù)和表,然后再介紹利用SQL語(yǔ)句來(lái)使用事務(wù)的操作,接下來(lái)就讓我們一起來(lái)了解一下這部分內(nèi)容吧。

創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元巴州做網(wǎng)站,已為上家服務(wù),為巴州各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

--建庫(kù)

 
 
 
  1. IF EXISTS (SELECT name FROM sys.databases WHERE name = N'TransTestDb')   
  2. drop database [TransTestDb]   
  3. CREATE DATABASE [TransTestDb];  

--建表

 
 
 
  1. use [TransTestDb]   
  2. go   
  3. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TransTestTable]') AND type in (N'U'))   
  4. drop table [TransTestTable]   
  5.  
  6. CREATE TABLE [dbo].[TransTestTable](Id int, [Name] varchar(16));  

--初始值

 
 
 
  1. use [TransTestDb]   
  2. go   
  3. insert into [TransTestTable]   
  4. select 1,'a' union   
  5. select 2,'b' union   
  6. select 3,'c';  

 

--建庫(kù)

 
 
 
  1. IF EXISTS (SELECT name FROM sys.databases WHERE name = N'TransTestDb')  
  2. drop database [TransTestDb] CREATE DATABASE [TransTestDb];  

 

--建表

 
 
 
  1. use [TransTestDb] go IF EXISTS (SELECT * FROM sys.objects   
  2. WHERE object_id = OBJECT_ID(N'[dbo].[TransTestTable]') AND type in (N'U'))   
  3. drop table [TransTestTable]   
  4. CREATE TABLE [dbo].[TransTestTable](Id int, [Name] varchar(16));  

 

--初始值

 
 
 
  1. use [TransTestDb] go insert into [TransTestTable]   
  2. select 1,'a' union select 2,'b' union select 3,'c'; 

 

-- 首先介紹利用SQL語(yǔ)句來(lái)使用事務(wù)。Sql Server2005/2008提供了begin tran,commit tran和rollback tran三個(gè)語(yǔ)句來(lái)顯示的使用事務(wù)。begin tran表示事務(wù)開始,commit tran表示事務(wù)提交,rollback tran表示事務(wù)回滾。具體代碼如下:

 
 
 
  1. begin try   
  2. begin tran   
  3. insert into dbo.TransTestTable values (66,'66');   
  4. update dbo.TransTestTable set [Name] = '88' where [Id] = 66;   
  5. -- RAISERROR ('Error raised in TRY block.',16,1);   
  6. commit tran   
  7. end try   
  8. begin catch   
  9. rollback tran   
  10. end catch 

 

代碼中的begin try和begin catch是捕獲異常時(shí)使用的,只在sql server2005/2008中支持,sql server 2000上不支持這個(gè)語(yǔ)句。在begin try 和 end try之間的代碼運(yùn)行時(shí)如果發(fā)生異常,則程序會(huì)跳轉(zhuǎn)到begin catch和end catch中執(zhí)行相關(guān)的rollback tran回滾操作。在begin tran和commit tran之間就是一個(gè)事務(wù),insert和update必須同時(shí)成功,否則就同時(shí)失敗。RAISERROR 語(yǔ)句的意思是拋出一個(gè)異常,只在sql server2005/2008中支持,sql server 2000上不支持這個(gè)語(yǔ)句。

執(zhí)行上面的代碼,我們會(huì)發(fā)現(xiàn),插入和更新同時(shí)都成功了。把RAISERROR的注釋去掉后,再執(zhí)行,我們會(huì)發(fā)現(xiàn),插入和更新都回滾了。因?yàn)镽AISERROR拋出異常后,沒(méi)有執(zhí)行到commit tran,而是直接執(zhí)行begin catch里面的rollback tran回滾語(yǔ)句了。這里可以看到事務(wù)的原子性原則和一致性原則,同時(shí)更改同時(shí)插入。

以上就是SQL Server數(shù)據(jù)庫(kù)中使用事務(wù)的過(guò)程,本文就介紹到這里了,希望本次的介紹能夠?qū)δ兴鶐椭?/p>
分享文章:SQLServer數(shù)據(jù)庫(kù)利用SQL語(yǔ)句使用事務(wù)詳解
地址分享:http://www.5511xx.com/article/dhisiii.html