]> git.joonet.de Git - adminer.git/commitdiff
MS SQL: Fix CSV import (bug #859)
authorJakub Vrana <jakub@vrana.cz>
Wed, 26 Feb 2025 21:40:28 +0000 (22:40 +0100)
committerJakub Vrana <jakub@vrana.cz>
Wed, 26 Feb 2025 21:40:28 +0000 (22:40 +0100)
adminer/drivers/mssql.inc.php
changes.txt

index 5dc15a5cf1179add2d604f79d155f6c387b11328..8c5f84a5ea77caad8bb14396a2653f67b7626b3c 100644 (file)
@@ -206,12 +206,16 @@ if (isset($_GET["mssql"])) {
                        foreach ($rows as $set) {
                                $values[] = "(" . implode(", ", $set) . ")";
                        }
-                       queries("SET IDENTITY_INSERT " . table($table) . " ON");
-                       $return = queries("MERGE " . table($table) . " USING (VALUES\n\t" . implode(",\n\t", $values) . "\n) AS source ($columns) ON " . implode(" AND ", $where) //! source, c1 - possible conflict
-                               . ($update ? "\nWHEN MATCHED THEN UPDATE SET " . implode(", ", $update) : "")
-                               . "\nWHEN NOT MATCHED THEN INSERT (" . implode(", ", array_keys($set)) . ") VALUES ($columns);" // ; is mandatory
-                       );
-                       queries("SET IDENTITY_INSERT " . table($table) . " OFF");
+                       if ($where) {
+                               queries("SET IDENTITY_INSERT " . table($table) . " ON");
+                               $return = queries("MERGE " . table($table) . " USING (VALUES\n\t" . implode(",\n\t", $values) . "\n) AS source ($columns) ON " . implode(" AND ", $where) //! source, c1 - possible conflict
+                                       . ($update ? "\nWHEN MATCHED THEN UPDATE SET " . implode(", ", $update) : "")
+                                       . "\nWHEN NOT MATCHED THEN INSERT (" . implode(", ", array_keys($set)) . ") VALUES ($columns);" // ; is mandatory
+                               );
+                               queries("SET IDENTITY_INSERT " . table($table) . " OFF");
+                       } else {
+                               $return = queries("INSERT INTO " . table($table) . " VALUES\n" . implode(",\n", $values));
+                       }
                        return $return;
                }
 
index 1d657c3efdd3a9041ea849cd64710369ad3beee9..33924e2fafcbc08ece73407183d9f9c4d053a8da 100644 (file)
@@ -7,6 +7,7 @@ SQLite: Display all rows of variable values
 SQLite: Remove support for SQLite version 2
 MS SQL: Support export (bug #480)
 MS SQL: Display foreign keys ON UPDATE and ON DELETE
+MS SQL: Fix CSV import (bug #859)
 MS SQL: Fix altering foreign key
 MS SQL PDO: Support offset
 MS SQL: Remove support for MSSQL extension