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

来源:百度知道 编辑:UC知道 时间:2024/09/12 16:32:59
它提示说要把什么什么设置为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' 附近有语法错误。

设置 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... )

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

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

SQL server怎么安装? sql server 怎么用 asp怎么向sql server中插入数据阿 怎么用asp向sql server中插入数据 sql server 中复制表结构怎么复制? SQL SERVER 2000中怎么插入 ' 这个字符? 怎么在sql server中查询被锁定的对象 SQL Server中数据库验证密码怎么改? 怎么在sql server 2000中调用系统时间 怎么在Delphi中通过BDE建立SQL Server数据库连接