我往SqlServer中加数据的时候,他给我报了个错
说:"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'O_TRAIN_CATEGORY' 中的标识列插入显式值。"
因为我这个表的主键设置的是自增的!是不是自增没开啊?怎么改啊?

解决方案 »

  1.   


    set IDENTITY_INSERT [表名] on --打开
    set IDENTITY_INSERT [表名] off --关闭
      

  2.   

    加上具体的字段名 可行set IDENTITY_INSERT textA on
    go
    insert into textA(test,tname) values(100,'30')
    go
    set IDENTITY_INSERT  textA off
    go不可行set IDENTITY_INSERT textA on
    go
    insert into textA values(100,'30')
    go
    set IDENTITY_INSERT  textA off
    go
      

  3.   

    关键是我的添加语句不是在控制台输入insert添加的啊!
    我是在后台用JDBC语句添加的!!!!
      

  4.   


    import java.sql.*;public class TestKuai {
     public static void main(String[] args){
      try{
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","tiger");
      //下面的意思要调用那个存储过程,存储过程名字是PP;
       CallableStatement   cs =conn.prepareCall("{call pp(?,?)}");
      // 下面是对表的修改
       cs.setInt(1, 5);
       cs.setString(2, "jack");
       
       //执行存储过程
       cs.execute();
       
       cs.close();
       conn.close();
      }catch(Exception e){
       e.printStackTrace();
      }
      
     }
    }/*下面是pp存储过程的书写格式,目的是根据名字修改年龄。
    create procedure pp (vage number,vname varchar2) is
    begin
    update test set age=vage where name=vname;
    end;
    *//*下面是表的结构
    create table TEST
    (
      AGE  NUMBER,
      NAME VARCHAR2(90)
    );