@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()
.