INSERT   INTO   products   (id,   product)   VALUES(3,   'garden   shovel') 
GO 这句话在正常情况下是不允许插入的,因为id列是自增列,只有在 
SET   IDENTITY_INSERT   products   ON  的时候才可以插入值

解决方案 »

  1.   

    CREATE   TABLE   products   (id   int   IDENTITY   PRIMARY   KEY,   product   varchar(40)) 
    GO 
    INSERT   INTO   products   (product)   VALUES   ('screwdriver') 
    INSERT   INTO   products   (product)   VALUES   ('hammer') 
    INSERT   INTO   products   (product)   VALUES   ('saw') 
    INSERT   INTO   products   (product)   VALUES   ('shovel') 
    GO DELETE   products   
    WHERE   product   =   'saw' 
    GO SELECT   *   
    FROM   products 
    GO 
    SET   IDENTITY_INSERT   products   ON 
    GO INSERT   INTO   products   (id,   product)   VALUES(3,   'garden   shovel') 
    GO SELECT   *   
    FROM   products 
    GO DROP   TABLE   products 
    GO 
      

  2.   

    我想你有点不了解吧..
    联机丛书是为了说明SET   IDENTITY_INSERT的作用才故意产生错误的.如果我不想错误.那这样就好了.CREATE   TABLE   products   (id   int   IDENTITY   PRIMARY   KEY,   product   varchar(40)) 
    GO 
    --   Inserting   values   into   products   table. 
    INSERT   INTO   products   (product)   VALUES   ('screwdriver') 
    INSERT   INTO   products   (product)   VALUES   ('hammer') 
    INSERT   INTO   products   (product)   VALUES   ('saw') 
    INSERT   INTO   products   (product)   VALUES   ('shovel') 
    GO --   Create   a   gap   in   the   identity   values. 
    DELETE   products   
    WHERE   product   =   'saw' 
    GO SELECT   *   
    FROM   products 
    GO --   Attempt   to   insert   an   explicit   ID   value   of   3; 
    --   should   return   a   warning. --在这里加 SET   IDENTITY_INSERT   products   ON 
    SET   IDENTITY_INSERT   products   ON INSERT   INTO   products   (id,   product)   VALUES(3,   'garden   shovel') 
    GO 
    --   SET   IDENTITY_INSERT   to   ON. GO 
    SELECT   *   
    FROM   products 
    GO 
    --   Drop   products   table. 
    DROP   TABLE   products 
    GO 
      

  3.   

    那这样的语句如何调才能解决问题呢SET IDENTITY_INSERT AwordTab on  insert into AwordTab
    select AwordID,bookName,AwordName,AwordUnit,AwordDate from OpenDataSource( 'SQLOLEDB', 'Data Source=web;User ID=sa;Password=').lin.dbo.AwordTab  
      

  4.   

    CREATE TABLE [dbo].[AwordTab] (
    [AwordID] [int] IDENTITY (1, 1) NOT NULL ,
    [bookName] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [AwordName] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [AwordUnit] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [AwordDate] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]当然有了
      

  5.   

    insert   into   AwordTab (AwordID,bookName,AwordName,AwordUnit,AwordDate   )
    select   AwordID,bookName,AwordName,AwordUnit,AwordDate   from   OpenDataSource(   'SQLOLEDB',   'Data   Source=web;User   ID=sa;Password=').lin.dbo.AwordTab     
    原来这样就行,。
      

  6.   

    原来这样就行了
    insert   into   AwordTab ( AwordID,bookName,AwordName,AwordUnit,AwordDate   )
    select   AwordID,bookName,AwordName,AwordUnit,AwordDate   from   OpenDataSource(   'SQLOLEDB',   'Data   Source=web;User   ID=sa;Password=').lin.dbo.AwordTab     
    不是SET   IDENTITY_INSERT   AwordTab   on  的错,,,,杀错人了
      

  7.   

    我也遇到过这种问题,最后还是手动先把自增长属性去掉,操作完后再把属性加上去的。用SET   IDENTITY_INSERT   on/off,总是有这样那样的小问题报出来,头痛。