2

この奇妙な問題があります。4列のテーブルを作成し、1列をint型の主キーとして設定しました。主キー列をIDとして設定しませんでしたが、テーブルにデータを挿入しようとすると、次のエラーが発生します。

Cannot insert explicit value for identity column in table 'Table1' when IDENTITY_INSERT is set to OFF.

主キー列を指定せずに挿入しようとしました(IDENTITY(x、y)に設定されていると仮定します!)。この場合、エラーは発生しませんが、データも挿入されません。

'table1'の作成:

    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

'table1'に挿入します

    INSERT INTO [PARTIAL_NEWVEDJA].[dbo].[Table1]
           ([id]
           ,[name]
           ,[code]
           ,[exp_1])
        VALUES
            (1,N'سازمان',null,null), (2,N'معاونت',null,null);
    GO

よろしくお願いします。

4

2 に答える 2

1
USE [NEWVEDJA]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE....

With this code, the table is created with ID as PK without the IDENTITY property. All is well.

INSERT INTO [PARTIAL_NEWVEDJA].[dbo].[Table1]
       ([id]

With this code, you are inserting data into [PARTIAL_NEWVEDJA].[dbo].[Table1], which is a table in another DB. Looks like IDENTITY property is enabled in that table for ID column.

Can you try inserting data into the same table that you have created with your CREATE statement?

Raj

于 2013-02-13T10:23:07.770 に答える
0

が無効になっている場合identity_insert、id列の値を明示的に設定することはできません。なんらかの自動番号が設定されていると思います。

試す:

INSERT INTO [PARTIAL_NEWVEDJA].[dbo].[Table1]
       ([id]
       ,[name]
       ,[code]
       ,[exp_1])
    VALUES
        (null,N'سازمان',null,null), (2,N'معاونت',null,null);
于 2013-02-13T10:01:21.400 に答える