Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
JDBC sürücüsünü indirin
SQL Server için Microsoft JDBC Sürücüsü, otomatik olarak oluşturulan satır tanımlayıcılarını almak için isteğe bağlı JDBC 3.0 API'lerini destekler. Bu özelliğin temel değeri, bir sorgu ve sunucuya ikinci bir gidiş dönüş gerektirmeden veritabanı tablosunu güncelleştiren bir uygulama için değerleri kullanılabilir hale getirmenin IDENTITY bir yolunu sağlamaktır.
SQL Server tanımlayıcılar için sahte sütunları desteklemediğinden, otomatik oluşturulan anahtar özelliğini kullanması gereken güncelleştirmelerin sütun içeren IDENTITY bir tabloda çalışması gerekir. SQL Server tablo başına yalnızca tek IDENTITY bir sütuna izin verir. SQLServerStatement sınıfının getGeneratedKeys yöntemi tarafından döndürülen sonuç kümesinin tek bir sütunu olur ve döndürülen sütun adı GENERATED_KEYS olur. Oluşturulan anahtarlar sütunu olmayan IDENTITY bir tabloda istenirse, JDBC sürücüsü null sonuç kümesi döndürür.
Örneğin, AdventureWorks2025 örnek veritabanında aşağıdaki tabloyu oluşturun:
CREATE TABLE TestTable
(Col1 int IDENTITY,
Col2 varchar(50),
Col3 int);
Aşağıdaki örnekte, AdventureWorks2025 örnek veritabanına açık bir bağlantı işleve geçirilir, tabloya veri ekleyecek bir SQL deyimi oluşturulur ve ardından deyimi çalıştırılır ve IDENTITY sütun değeri görüntülenir.
public static void executeInsertWithKeys(Connection con) {
try(Statement stmt = con.createStatement();) {
String SQL = "INSERT INTO TestTable (Col2, Col3) VALUES ('S', 50)";
int count = stmt.executeUpdate(SQL, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
if (rs.next()) {
do {
for (int i=1; i<=columnCount; i++) {
String key = rs.getString(i);
System.out.println("KEY " + i + " = " + key);
}
} while(rs.next());
}
else {
System.out.println("NO KEYS WERE GENERATED.");
}
}
// Handle any errors that may have occurred.
catch (SQLException e) {
e.printStackTrace();
}
}