create database moneychange
gouse moneychange
gocreate table bank
(id int primary key identity(1,1),
name varchar(20) not null,
money int default(0) check(money>=0)
)insert into bank values('張三',100)
insert into bank values('李四',50)
select * from bank
--刪除儲存過程
if exists (select * from sys.procedures where name='chenge')
drop proc chenge
go--建立儲存過程
create proc chenge
@from int,
@into int,
@money int,
@error int output
as--建立事務
begin tran
--declare @error int --宣告變數
set @error=0
--我們將可能會出錯的sql 寫在begin try...endtry 之間,若出錯,剛程式就跳到緊接著的begin try...endtry 的beign catch...endcatch
--中,執行beign catch...endcatch錯誤處理sql。try..catch 是可以巢狀的。
begin try
update bank set money=money-@money where id=@from
set @error=@@error+@error
update bank set money=money+@money where id=@into
set @error=@@error+@error
end try
begin catch
set @error=@error+error_number() --獲取錯誤語句
--error_number 返回錯誤**
--error_serverity 返回錯誤的嚴重級
--error_state 返回錯誤狀態**
--error_message 返回完整的錯誤資訊
--error_number 函式功能主要返回錯誤資訊所對應的 「錯誤訊息表」中的行號
end catch
if @error<>0
begin
rollback tran
endelse
begin
commit tran
endgo
declare @error int
exec chenge 1,2,10,@error output
print @error
事務和儲存過程
事務 同生共死 指訪問並可能更新資料庫中各種資料項的乙個程式執行單元 unit 也就是由多個sql語句組成,必須作為乙個整體執行 這些sql語句作為乙個整體一起向系統提交,要麼都執行 要麼都不執行 語法步驟 開始事務 begin transaction 事務提交 commit transaction...
儲存過程和事務
在儲存過程中使用事務時非常重要的,使用資料可以保持資料的關聯完整性,在sql server儲存過程中使用事務也很簡單,我們先來簡單了解一下儲存過程和事務,然後用乙個例子來簡單說明他們的用法 儲存過程 事務 以學生註冊資訊為例 create procedure dbo proc sturegister...
sql事務和儲存過程
一 sql事務 1.什麼是事務 事務是乙個不可分割的工作邏輯單元,在資料庫系統上執行併發操作時事務是做為最小的控制單元來使用的。他包含的所有資料庫操作命令作為乙個整體一起向系提交或撤消,這一組資料庫操作命令要麼都執行,要麼都不執行。2.事務的語句 開始事物 begin transaction 提交事...