在SQL Server 2008 R2,我有一个简单的表有以下的列的定义:SQL Server的奇怪重复键错误
Id (PK ,int , not null)
MeterId (FK , int ,not null)
InstallDate(DateTime, not null)
Image(NVarCharMax, null)
Number (int , not null)
Comments(NVarChar(300), null)
而且Id
列设置为Identity
。
当我运行:
insert into Transmitters (MeterId, Number, InstallDate)
values (952, 777 , '2013-02-21')
我得到的重复键错误。
没有其他发送ID为777,
有id为952
这开始在我的数据库超过1台发生一米。
任何建议将是最appriceated。
整个表脚本是:你一直
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Transmitters](
[Id] [int] IDENTITY(1,1) NOT NULL,
[MeterId] [int] NOT NULL,
[InstallDate] [datetime] NOT NULL,
[Image] [nvarchar](max) NULL,
[Number] [int] NOT NULL,
[Comments] [nvarchar](300) NULL,
CONSTRAINT [PK_Transmitters] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Transmitters] WITH CHECK ADD CONSTRAINT [FK_Transmitter_Meter] FOREIGN KEY([MeterId])
REFERENCES [dbo].[Meter] ([Id])
GO
ALTER TABLE [dbo].[Transmitters] CHECK CONSTRAINT [FK_Transmitter_Meter]
GO
是对FK自参照或你对FK唯一约束? – Kermit 2013-02-21 15:45:54
你可以编制整个表格,包括所有约束吗?另外,插入此记录时表格是否为空?也许它已经填充并且身份正在挑选已经存在的号码。 – Mayo 2013-02-21 15:47:15
FK提供另一张表格:米。我没有任何限制。 – 2013-02-21 15:47:40