sqlserver 數據庫identity_insert問題


例如: 

@Test
 public void test() {
    String sql1 = "insert into emp values(null,?,?,?)"; //?占位符
    jdbcTemplate.update(sql1,"李四",24,"男");
 }

報錯:Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 僅當使用了列列表並且 IDENTITY_INSERT 為 ON 時,才能為表'emp'中的標識列指定顯式值。

這是因為主鍵設置自增后,不能在sql語句中加入主鍵的值

正確寫法:    String sql1 = "insert into emp values(?,?,?)"; //?占位符
    jdbcTemplate.update(sql1,"李四",24,"男");

或jdbcTemplate.update( "insert into emp values('凌子',21,'女')");

另附identity_insert為on的寫法(可以在自增主鍵下插入指定的主鍵 比如上一個是1而這個我需要5):
jdbcTemplate.update("set identity_insert emp on "
      + "insert into emp(eid,ename,age,sex) values(5,'凌子',21,'女') "
      + "set identity_insert emp off");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM