From f5d23a8cadd8eab3c39809c9c69d11828a2f8cfa Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Mon, 24 Mar 2025 14:25:38 +0100 Subject: [PATCH] MS SQL PDO: Display last insert ID --- CHANGELOG.md | 1 + adminer/drivers/mssql.inc.php | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7fc77c2..cb43c6ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - PostgreSQL 11: Support PROCEDURE - SQLite PDO: Display results in SQL query - MS SQL: Fix collation issues when retrieving default values +- MS SQL PDO: Display last insert ID - CSS: Sticky table headers (bug #918) - CSS: Allow more custom styles with dark mode (bug #925) - CSS: Increase maximum width of string edit (bug #930) diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index c26c323e..4266de45 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -156,12 +156,25 @@ if (isset($_GET["mssql"])) { } } + function last_id($result) { + return get_val("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT + } + } else { class MssqlDb extends PdoDb { function select_db($database) { // database selection is separated from the connection so dbname in DSN can't be used return $this->query(use_sql($database)); } + + function lastInsertId() { + return $this->pdo->lastInsertId(); + } + } + + function last_id($result) { + global $connection; + return $connection->lastInsertId(); } if (extension_loaded("pdo_sqlsrv")) { @@ -543,10 +556,6 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table), $connection2) as $row ; } - function last_id($result) { - return get_val("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT - } - function explain($connection, $query) { $connection->query("SET SHOWPLAN_ALL ON"); $return = $connection->query($query); -- 2.39.5