Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво означава, когато Statement.executeUpdate() върне -1?

Тъй като изпълненият оператор всъщност не е DML (напр. UPDATE , INSERT или EXECUTE ), но част от T-SQL, която съдържа DML, подозирам, че не се третира като заявка за актуализиране.

Раздел 13.1.2.3 от спецификацията JDBC 4.1 посочва нещо (доста трудно за тълкуване между другото):

Като се има предвид тази информация, предполагам, че executeUpdate() вътрешно прави execute() и след това - като execute() ще върне false - ще върне стойността на getUpdateCount() , което в този случай - в съответствие със спецификацията на JDBC - ще върне -1 .

Това допълнително се потвърждава от факта, 1), че Javadoc за Statement.executeUpdate() казва:

И 2) че Javadoc за Statement.getUpdateCount() уточнява:

Само за пояснение:даден Javadoc за executeUpdate() поведението вероятно е грешно, но може да се обясни.

Освен това, както коментирах другаде, -1 може просто да показва:може би нещо е било променено, но ние просто не знаем или не можем да дадем точен брой промени (напр. защото в този пример това е част от T- SQL, който се изпълнява).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 предимства на проактивното наблюдение на ефективността на базата данни

  2. Избиране на N реда в SQL Server

  3. 3 начина за използване на ВСИЧКИ в SQL Server

  4. Какъв е правилният SQL тип за съхраняване на .Net времеви интервал със стойности> 24:00:00?

  5. SQL заявка за получаване на обобщен резултат в разделители на запетая заедно с група по колона в SQL Server