理解SQL Server错误消息 - "表"会话中的"标识列"是什么意思?

Cof*_*fee 0 sql sql-server sql-server-2008

我很好奇插入这些数据后我得到的错误,如下所示:

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)
Run Code Online (Sandbox Code Playgroud)

错误消息显示:

只有在使用列列表且IDENTITY_INSERT为ON时,才能指定表'sessions'中标识列的显式值.

令人困惑的是 - 什么是标识栏

Lam*_*mak 5

您的表具有标识列,这意味着您有一个列在插入行时自动递增其值.由于这是自动的,因此除非您使用,否则不能明确地将值插入该列SET IDENTITY_INSERT ON.所以,在你的情况下,你应该做:

INSERT INTO bi_sessions(<list of all non-identity column>)
VALUES (<your values>)
Run Code Online (Sandbox Code Playgroud)