日期:2014-05-18  浏览次数:20366 次

向各位高手请教SQL 带事务的问题
使用SQL Server数据库现在要在Del(int id)里写根据id删除用户,要求带有事务,删除成功提交,删除失败要回滚,希望能得到帮助。

------解决方案--------------------
你把删除语句放事务里。
------解决方案--------------------
BEGIN TRAN 
DELETE 。。
IF @@ERROR=0
BEGIN
COMMIT
END
ELSE
ROLLBACK
------解决方案--------------------
SQL code
declare @id int

begin tran
   delete tableName where id=@id
   if(@@error<>0)
       rollback tran
   else
       commit tran

------解决方案--------------------
begin Transaction
begin Try

----------------------------------
delete from 表名 where 条件
---------------------------------
commit Tran

end Try
begin Catch

rollback Tran

declare @sTemp varchar(1000)
select @sTemp=ERROR_MESSAGE()
raiserror(@sTemp,16,1)

end Catch
------解决方案--------------------
SQL代码关键词:
 事务(transaction),
 提交(commit),
 回滚(rollback),
 开始(begin),
 结束(end).
------解决方案--------------------
探讨
BEGIN TRAN
DELETE 。。
IF @@ERROR=0
BEGIN
COMMIT
END
ELSE
ROLLBACK

------解决方案--------------------
SQL code

--2005 & 2008
Begin Try
    Begin tran
    
    --SQL 語句(Insert\Update\Delete)
            
    Commit Tran
End Try
Begin Catch
    Declare @Error nvarchar(2047)
    Set @Error=Error_message()
    Raiserror 50001 @Error
    Rollback Tran
End Catch
Go
--2000
begin tran

    --單條 SQL 語句(Insert\Update\Delete)
    If @@ERROR <>0
        Goto ErrFlag

    --單條 SQL 語句(Insert\Update\Delete)
    If @@ERROR <>0
        Goto ErrFlag
    
    --單條 SQL 語句(Insert\Update\Delete)
    If @@ERROR <>0
        Goto ErrFlag

Commit Tran
Goto ExitFlag            
ErrFlag:
    Rollback Tran

ExitFlag: