这个事务为何不起作用

fxgang fxgang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的数据库为SQL2005 SP1
在数据库中定义了如下的一个表:
CREATE TABLE [dbo].[NsCostRec](
[FStockID] [int] NOT NULL,
[FItemID] [int] NOT NULL,
[FDate] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[FAmount] [decimal](18, 6) NOT NULL,
[FAmount1] [decimal](18, 6) NOT NULL,
[FPreAmount] [decimal](18, 6) NOT NULL,
CONSTRAINT [PK_NsCostRec] PRIMARY KEY CLUSTERED
(
[FStockID] ASC,
[FItemID] ASC,
[FDate] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
--
FStockID,FItemID,FDate为主键
--执行下面一个事务
begin tran
update AXiStockInto set FTheFirstTimeID=2,FTheFirstTimeDate='2009-04-10',FTheFirstTimeTime='08:57:22' where finterid=93
insert into NsCostRec(FStockID, FItemID, FDate, FAmount, FAmount1, FPreAmount) values(1773, 1815, '2009-04-09', 1200.000015, 1200.000000, 0.000000)
insert into NsCostRec(FStockID, FItemID, FDate, FAmount, FAmount1, FPreAmount) values(1773, 1815, '2009-04-09', 1200.000015, 1200.000000, 0.000000)
if @@Error=0
begin
commit tran
end
else
begin
rollback tran
end
出现:
-----------
(1 行受影响)

(1 行受影响)
消息 2627,级别 14,状态 1,第 1 行
违反了 PRIMARY KEY 约束 'PK_NsCostRec'。不能在对象 'dbo.NsCostRec' 中插入重复键。
语句已终止。
----------
的提示
此时我的表中已经被写入了数据,事物并没有回滚。
...全文
评论 8
收藏 已收藏
分享
返回顶部
fxgang
疑难问题 22,298 成员 121,727 内容