300求解?sql server的事务问题!

jkjj20 2003-03-20 03:55:25
下面的Sql语句执行的时候存在主键冲突,SQL Server也提示出现错误,但是为什么第一条还是被成功添加,而没有回滚

BEGIN TRAN T1
insert into TDayReport (SubjectKindID,AccoutDate) Values('1111','2002-09-09')
insert into TDayReport (SubjectKindID,AccoutDate) Values('1111','2002-09-09')
COMMIT TRAN T1
...全文
25 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SophiaWang 2003-03-20
  • 打赏
  • 举报
回复
@@error中记录的是上次操作的正确与否的代码!当运用于事务中时,正好可以用来做为事务提交或回滚的判断条件!
SophiaWang 2003-03-20
  • 打赏
  • 举报
回复
用全局变量@@error来判断事务中的语句是否执行成功!
当为0的时候,表示成功执行,当为非零的时候,即会显示错误的代号。
故,可以用@@error来判断!当成功时,提交事务;当失败时,回滚事务!!
愉快的登山者 2003-03-20
  • 打赏
  • 举报
回复
BEGIN TRAN T1
insert into TDayReport (SubjectKindID,AccoutDate) Values('1111','2002-09-09')
insert into TDayReport (SubjectKindID,AccoutDate) Values('1111','2002-09-09')
if @@error <> 0 then
rollback TRAN T1
else
COMMIT TRAN T1

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧