MS SQL Identity, dodanie nowego rekordu.

0

Witajcie,

    Mam baze MS SQL w której pierwsza kolumna w tabeli posiada ustawiony parametr Identity = True (ID typu int). Niestety nie wiem jak dodać now wiersz do tabeli z takim parametrem, testowałem coś z pobraniem ostatniej wartości z kolumny, zwiększenie o jedne ale chyba nie tędy droga.
 int id = 0;    
 Connection conn = getConnection();
 Statement stmt = conn.createStatement();       
 ResultSet result = stmt.executeQuery("select MAX(ID) from XXX");
 ResultSetMetaData rsmd = result.getMetaData();

 while (result.next())   
 {        
     id = result.getInt(1); 
 }    

 conn.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
 PreparedStatement pstmt = null;
 pstmt = conn.prepareStatement( "Insert into XXX values"+" (?,?)");
 pstmt.setInt(1, id++);
 pstmt.setString(2, "tekst");
 pstmt.executeUpdate();

Wartości tebeli z parametrem Identity, zwiększają same więć mój zabieg się tu nie sprawdził. Jak doać nowy wiersz ta takiej tabeli, chodzi mi tutaj o postępowanie z parametrem Identiti.
"pokolorowałem" kod

0

Pomiń pole ID, a wartość powinna zostać wstawiona automatycznie (kolejna). Jeśli chcesz pobrać tę wartość poczytaj o @@IDENTITY.

1

pstmt = conn.prepareStatement( "Insert into XXX values"+" (?)");
pstmt.setString(1, "tekst");

Pole ID w bazie musi być autoincrement

0

Dzięki, oczywiście działa. Testowałem to rozwiążanie nim napisałem na forum jednak z jakiś powodów nie zadziałało. Prawdopodobnie wcześniej wstawiłem ręcznie do bazy kilka pól, tym razem utworzyłem nową tabele i wszystko świtnie zadziałało. Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0