我的环境是:vs.2003+mssqlserve2000
仅当使用了列的列表,并且IDENTITY_INSERT 为on时,才能在表'tmptb'中为标识列指定显式值下边是我报错的表结构:
CREATE TABLE [dbo].[日志] (
[id] [bigint] IDENTITY (1, 1) NOT NULL ,
[times] [datetime] NULL ,
[addr] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[lb] [varchar] (100) COLLATE Chinese_PRC_CI_AS NULL ,
[zd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
) ON [PRIMARY]应该如何修改才不会报这样的错呢???

解决方案 »

  1.   

    如果要给自动编号列赋值,必须指定:SET IDENTITY_INSERT 表名 ONINSERT INTO 表名(id) select 1SET IDENTITY_INSERT 表名 OFF
      

  2.   

    自动编号列如果需要修改,必须设置SET IDENTITY_INSERT 表名 ON
      

  3.   

    如果插入记录时候会改变id列,就需要设置一下。SET IDENTITY_INSERT 表名 ON相关插入语句。。SET IDENTITY_INSERT 表名 OFF
      

  4.   

    create table ta(id int identity(1,1),name)
    insert ta select 'aaa'--不用对id赋值