错误错误:当IDENTITY_INSERT设置为OFF时,无法在表'Table1'中插入标识列的显式值
我有这个奇怪的问题,我创建了一个包含四列的表,并将一列设置为具有int类型的主键。我没有设置主键列身份,但是当我尝试在表中插入数据我得到这个错误:错误错误:当IDENTITY_INSERT设置为OFF时,无法在表'Table1'中插入标识列的显式值
Cannot insert explicit value for identity column in table 'Table1' when IDENTITY_INSERT is set to OFF.
我试过不指定主键列(假设它设置为IDENTITY插入(x,y)!),在这种情况下,它不会给出任何错误,但它也不会插入任何数据!
创建 '表1':
USE [NEWVEDJA]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table1](
[id] [int] NOT NULL,
[name] [nvarchar](50) NULL,
[code] [int] NULL,
[exp_1] [nvarchar](max) NULL,
CONSTRAINT [PK_Table1] 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
,并插入到 '表1'
INSERT INTO [PARTIAL_NEWVEDJA].[dbo].[Table1]
([id]
,[name]
,[code]
,[exp_1])
VALUES
(1,N'سازمان',null,null), (2,N'معاونت',null,null);
GO
感谢很多提前。
USE [NEWVEDJA]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE....
利用该代码,表是用ID作为不IDENTITY属性PK创建。一切都很好。
INSERT INTO [PARTIAL_NEWVEDJA].[dbo].[Table1]
([id]
有了这个代码,要插入数据到[PARTIAL_NEWVEDJA] [DBO]。[表1],这是在另一个DB的表。看起来IDENTITY属性在该表中为ID列启用。
您可以尝试将数据插入到您使用CREATE语句创建的同一张表中吗?
拉吉
谢谢@Raj。我错过了! – 2013-02-13 10:28:25
如果identity_insert
被禁用,您将不被允许显式设置id列的值。我假设某种自动编号已经建立。
尝试:
INSERT INTO [PARTIAL_NEWVEDJA].[dbo].[Table1]
([id]
,[name]
,[code]
,[exp_1])
VALUES
(null,N'سازمان',null,null), (2,N'معاونت',null,null);
它会产生另一个错误:不允许DEFAULT或NULL作为显式标识值。加上我创建了NOT NULL列。 – 2013-02-13 10:06:06
为我工作。该表可能不是由你的问题中的'create table'语句创建的。 – Andomar 2013-02-13 09:59:39
您正在[NEWVEDJA]中创建Table1,但在[PARTIAL_NEWVEDJA] – brykneval 2013-02-13 10:02:12
哇执行,谢谢@ brykneval,我怎么会错过! – 2013-02-13 10:19:06