0

次のように、このデータを挿入した後に発生したエラーに興味があります。

insert into bi_sessions 
values (295377778,  '04dzzzf7-e66c-4e6d-9c42-465a16546e34', 1,  43223810,   48, 1043,   'BELGIUM BEER Survey (QA)', 54, 'Synovate Panel',   -1  , 2.5,  6,  3,  2.5 , 2.5,  '2010-04-01 00:00:00.000',  '2010-04-01 00:00:30.000',  -1  ,3, 1,  '000708c8507696c06f777',    '68.200.93.212',    20, '04dea8f7-e66c-4e6d-9c42-465a16546777'  , -1,   NULL,   55743   ,9  , 'Untargeted', 3,  2,  2016,   'General',  1966,   '2010-04-01 00:00:22.000',  1966,   '2010-04-01 00:00:32.000',  1,  9,  'English - United States',  'Federated Sample', 1)

エラーメッセージは次のとおりです。

テーブル 'sessions' の ID 列の明示的な値は、列リストが使用され、IDENTITY_INSERT が ON の場合にのみ指定できます。

紛らわしいです - ID 列とは何ですか?

4

2 に答える 2

5

テーブルにはID 列があります。つまり、行が挿入されると値が自動的に増加する列があります。これは自動であるため、を使用しない限り、その列に値を明示的に挿入することはできませんSET IDENTITY_INSERT ON。したがって、あなたの場合、次のことを行う必要があります。

INSERT INTO bi_sessions(<list of all non-identity column>)
VALUES (<your values>)
于 2013-02-06T20:17:51.697 に答える
1

IDENTITY列は、SQLServer自体が値を決定する列です。これは通常、テーブル(テーブルなど)の主キーとして一意のID値を生成するために使用されます。sessions他のRDBMSは、これを自動インクリメントまたは自動番号付け列と呼びます。

SQL Serverはこれらの値自体を決定するため、その列に独自の値を挿入することはできません。

これを行うには、ステートメントで列のリストを明示的に指定する必要があります。INSERT

INSERT INTO dbo.bi_sessions(Col1, Col2, ...., ColN)
VALUES (...., ..., .......)
于 2013-02-06T20:18:41.600 に答える