![]() |
#2
3037709572013-09-26 09:33
|
软件系统:中软酒店管理系统
数据库:SQL 2005 SP2
原因:
account表添加update触发器后,对预定客房进行开房时出现“ 无法为更新定位行。一些值可能已在最后一次读取后已更改”,“存盘失败,请检查输入项目”。
触发器代码:
ALTER TRIGGER [dbo].[updateHTVC] ON [dbo].[account] FOR UPDATE
AS
if Update(acct_stus)
Begin
Declare @SN as varchar(50)
Declare @State as char(1)
Select @State=acct_stus From inserted
Select @SN=acct_num From deleted
Update HTVC Set HTVC.state=@State Where HTVC.SN=@SN
End
其中HTVC表为新建表(存在于中软数据库中,但不是自带表,是另外新建的一张表格)
现确定为该触发器的Update引起,因为单独把该条语句删除不会报错。
HTVC表结构为:
CREATE TABLE [dbo].[HTVC](
[SN] [char](9) NOT NULL,
[CustomerName] [varchar](60) NOT NULL,
[Sex] [char](2) NULL,
[CertificateNo] [varchar](40) NULL,
[TelphoneNo] [varchar](40) NULL,
[State] [char](1) NOT NULL,
[isCreate] [bit] NOT NULL CONSTRAINT [DF_HTVC_isCreate] DEFAULT ((0))
) ON [PRIMARY]
该表无主键,但有尝试将SN字段设为主键,仍然报错。
请大虾们帮忙看看,非常感谢!!
[ 本帖最后由 boneden 于 2013-9-25 21:09 编辑 ]