我遇到了一个奇怪的问题,我需要一些帮助来解决这个问题.
我有一个数据库,除了所有的应用程序数据列之外,还有一个ID列(定义为int not null,Identity,从1开始,递增1).表的主键是ID列,没有其他组件.
由于应用程序必须允许多次提交相同数据,因此没有可用作"自然主键"的数据集.
我有一个存储过程,这是将新记录添加到表中的唯一方法(除了直接以db所有者身份登录服务器)
虽然QA今天上午测试应用程序,他们进入一个新的记录到数据库中(使用的应用程序,因为它的目的是,当他们已经做了最后两周),并遇到一个主键违反了此表.
这与我十年来一直在做主键的方式相同,并且从未遇到过这种情况.
有想法该怎么解决这个吗?或者这是在很长一段时间内出现的宇宙射线故障之一.
感谢您提出的任何建议.
奈杰尔
美国东部时间6月12日下午1点15分编辑,以提供更多信息
架构的简化版本......
CREATE TABLE [dbo].[tbl_Queries](
[QueryID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [varchar](50) NOT NULL,
[LastName] [varchar](50) NOT NULL,
[Address] [varchar](150) NOT NULL,
[Apt#] [varchar](10) NOT NULL
... <12 other columns deleted for brevity>
[VersionCode] [timestamp] NOT NULL,
CONSTRAINT [PK_tbl_Queries] PRIMARY KEY CLUSTERED
(
[QueryID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
(还删除了默认值语句)
存储过程如下
insert …Run Code Online (Sandbox Code Playgroud)