Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQLServerException:कथन SQL निष्पादित करते समय परिणाम सेट वापस नहीं करता है

SQL 2000 से SQL 2005 में अपग्रेड किया गया और Microsoft SQL Server 2005 JDBC ड्राइवर संस्करण 1.2 पर स्विच किया गया। SELECT SCOPE_IDENTITY ()" के बाद एक इंसर्ट को निष्पादित करते समय मुझे "स्टेटमेंट ने कोई परिणाम नहीं दिया" त्रुटि मिली। मैंने एक्ज़ीक्यूटिव के बजाय एक्ज़िक्यूटअपडेट () और getGeneratedKeys का उपयोग करके समस्या को हल किया। यहाँ कोड से पहले और बाद में है।

नोट:इस उदाहरण में उपयोग किया गया कनेक्शन java.sql.connection है न कि com.microsoft.sqlserver.jdbc.SqlServerConnection।

एसक्यूएल 2000 कोड

String  dbURL = "jdbc:sqlserver" + "://" + dbServer + ":" +
                 dbServerPort + ";SelectedMethod=cursor;databaseName="
                           + dbName + ";user=xxx;password=xxx";
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
java.sql.Connection connection = DriverManager.getConnection(dbURL);
sql = "insert into Contact (name) values ('ABC'); SELECT SCOPE_IDENTITY()";
PreparedStatement ps = connection.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs.next()) {
     long id = rs.getLong(1);
     System.out.println("Id=" + id);
}

एसक्यूएल 2005 कोड

String  dbURL = "jdbc:sqlserver" + "://" + dbServer + ":" +
                 dbServerPort + ";SelectedMethod=cursor;databaseName="
                           + dbName + ";user=xxx;password=xxx";

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
java.sql.Connection connection = DriverManager.getConnection(dbURL);
sql = "insert into Contact (name) values ('ABC'); SELECT SCOPE_IDENTITY()";
PreparedStatement ps = connection.prepareStatement(sql);
ps.executeUpdate();  // do not use execute() here otherwise you may get the error
                     // The statement must be executed before 
                     // any results can be obtained on the next
                     // getGeneratedKeys statement.

ResultSet rs = ps.getGeneratedKeys();
if (rs.next()) {
     long id = rs.getLong(1);
     System.out.println("Id=" + id);
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में सशर्त शर्तें

  2. ddmmyyyy एसक्यूएल में एसक्यूएल डेटाटाइम करने के लिए

  3. SQL में रिक्त पंक्तियों की संख्या सम्मिलित करें

  4. लॉगऑन ट्रिगर को छोड़ने का प्रयास करते समय "ट्रिगर नहीं छोड़ सकता" त्रुटि? इसे इस्तेमाल करे।

  5. टी-एसक्यूएल में एकाधिक कॉलम पिवट