当mysql数据库转换为sqlserver数据库时常见报错

  

下面是我在把mysql数据库转换为sqlserver数据库候遇到过的一些错,踩过的坑,把它总结下来防止以后再出错。

报错 1:

com.microsoft.sqlserver.jdbc.SQLServerException: 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'user_student'中的标识列指定显式值。

 

出错原因:

当mysql数据库转换为sqlserver数据库时,如果第一个id设置为自动递增,那么

String sql = "insert into s_class values(null,?,?)";这种插入就直接回导致这个错误。

 

解决:将sql语句改为:String sql = "insert into s_class values(?,?);改成这样,插入语句才不会报错,

其实标题那句话错误的意思就是这样,如果已经设置为自动递增的字段,在sqlserver中是不允许,为这个字段设置显式值
 


报错 2:

Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'user' 附近有语法错误

出错原因:sql Server中user是关键字,因此报错

解决:在写查询语句的时候要在user上加[ ]

例如:select * from [user] from where id=2.另外order也是关键字 ,建议表名射程其他的词防止报错。

 报错 3:

java.lang.Exception: Method all should have no parameters

出错原因:做测试的时候,@Test带了参数,

eg:public User findById(int id) { }

解决:去掉参数,eg:public User findById() { }

 

 

 

你可能感兴趣的:(JAVA,mysql,sqlserver,java)