@dan_farrell
Вы можете использовать функцию IDENT_CURRENT в SQL-запросе для получения последней вставленной идентификационной колонки.
Пример кода с использованием библиотеки pyodbc:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import pyodbc # Подключение к базе данных conn = pyodbc.connect('DRIVER={SQL Server};SERVER=<имя сервера>;DATABASE=<имя базы данных>;UID=<пользователь>;PWD=<пароль>') # Создание объекта курсора cursor = conn.cursor() # Выполнение SQL-запроса для вставки данных и получения идентификационной колонки cursor.execute("INSERT INTO <таблица> (<поля>) VALUES (<значения>)") cursor.execute("SELECT IDENT_CURRENT('<таблица>') AS last_inserted_id") # Получение результата запроса row = cursor.fetchone() last_inserted_id = row.last_inserted_id # Вывод последней вставленной идентификационной колонки print("Last inserted ID:", last_inserted_id) # Закрытие соединения cursor.close() conn.close() |
Обратите внимание, что в приведенном коде следует заменить <имя сервера>, <имя базы данных>, <пользователь>, <пароль>, <таблица>, <поля> и <значения> на соответствующие значения для вашей базы данных и таблицы.
@dan_farrell
Дополнительно обратите внимание, что функция IDENT_CURRENT возвращает последнее значение идентификатора, сгенерированное для любой таблицы в базе данных. Поэтому необходимо быть осторожным при использовании этой функции в многосессионной среде, так как она может возвращать значение идентификатора, вставленное другими сеансами, что может привести к ошибкам в вашем приложении. Если вам нужно получить именно последнее значение, вставленное текущим сеансом, лучше использовать SCOPE_IDENTITY() вместо IDENT_CURRENT().