我要对SQL SERVER中的一个数据表插入记录,但出来了错误,提示为:当IDENITY_INSERT设置为OFF时,
不能向表‘TABLE1’中的标识列插入显示值。。这个问题怎么解决呢
SQL语句为:
    INSERT INTO TABLE1(ID,NAME,POST) VALUES('''+strID+''','''+strName+''','''+strpost+''')

解决方案 »

  1.   

    id是标识列吗?INSERT INTO TABLE1(NAME,POST) VALUES('''+strName+''','''+strpost+''')
      

  2.   

    楼上的为正解。INSERT INTO TABLE1(NAME,POST) VALUES('''+strName+''','''+strpost+''')
      

  3.   

    主键不需要插入
    如果要强制插入主键的话
    SET IDENTITY_INSERT Table1 ON
    INSERT INTO TABLE1(ID, NAME,POST) VALUES(....
    SET IDENTITY_INSERT Table1 OFF
      

  4.   

    我如果访问的是其它机器上的数据库,那有没有权限执行SET IDENTITY_INSERT TABLE1 ON这样的操作呢?
      

  5.   

    在Main表里,lngID字段被设置为标识列,而我没有执行SET IDENTITY_INSERT操作的权限,不能向lngID字段添加数据,而Main表的其它字段允许添加重复的值,这样,我怎样判断Main表中添加了重复的值呢?(Main表里有一千多万条记录,因此不可能用一条一条的比较这种方法来实现)
      

  6.   

    to楼主:
    1.权限跟“其它机器上的数据库”无关,仅取决于你的登录名
    2.既然“lngID字段被设置为标识列”,表中就不可能有重复列,
    sql server会自动保证表中该列数据为unique;
    3. 不过看你的表述,似乎其它字段也不允许重复(重复何解?),这种情况下lngID字段似乎没有意义?
    在你不允许重复的字段上加unique index进行限制。
      

  7.   

    在sql语句
    前面加一句就OK了:
    set IDENITY_INSERT TABLE1 on
    后面加上一面 
    set IDENITY_INSERT TABLE1 off