sql server 中 怎么让自动增1的主键列 临时的 让它可以手动插入指定值?

它提示说要把什么什么设置为ON
用java的Connection对象的哪个方法执行 SET IDENTITY_INSERT 表名 ON?
这是不是一个存储过程?

stmt=fr_conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate("SET IDENTITY_INSERT 表名 ON insert into 表名.. SET IDENTITY_INSERT 表名 OFF");
这个试了不行,还是抛一样的异常:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 '学生信息表' 中为标识列指定显式值。

我是这样搞的:
Database db = new Database();//这里封装了数据库操作
db.update("set IDENTITY_INSERT 学生信息表 on insert into 学生信息表 select * from 减少的学生 where 学生ID="+ xsid + " set IDENTITY_INSERT 学生信息表 off");
学生信息表 减少的学生 这两张表一模一样。只是 前者学生ID是自动增1,后者不增。

还有:列1,列2,列3... sql server中是可以不要的。

如果写了列的话,语法是错的,出错说:
第 1 行: '学生ID' 附近有语法错误。

打开企业管理器,列的属性里有 自动增长的标识,你要打开,并设置每次自动增长几。 

 看到标识这一栏没,改成 是。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-22
设置 SET IDENTITY_INSERT 表名 ON 这个属性时,插入语句必须显示出各列的名称

在java中调用:
Statement stmt=fr_conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt.executeUpdate("SET IDENTITY_INSERT 表名 ON insert into 表名.. SET IDENTITY_INSERT 表名 OFF");

insert语句需要列出全部的列名:
insert into 表名 列1,列2,列3...
values( 值1,值2,值3... )本回答被提问者采纳
第2个回答  2009-10-19
SET IDENTITY_INSERT 表名 ON
--你的插入语句
SET IDENTITY_INSERT 表名 OFF