]> git.joonet.de Git - adminer.git/commitdiff
MS SQL export: Create foreign keys after all tables
authorJakub Vrana <jakub@vrana.cz>
Wed, 26 Feb 2025 20:39:45 +0000 (21:39 +0100)
committerJakub Vrana <jakub@vrana.cz>
Wed, 26 Feb 2025 20:39:45 +0000 (21:39 +0100)
adminer/drivers/mssql.inc.php

index d7f711beb2bd15859c73064ddd716f3a0a3e60b1..6a7825a14fcd5dcd0e50fb82882d442e8bc0bfe9 100644 (file)
@@ -600,15 +600,20 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table)
                                $fields[] = ($index["type"] == "INDEX" ? "INDEX $name" : "CONSTRAINT $name " . ($index["type"] == "UNIQUE" ? "UNIQUE" : "PRIMARY KEY")) . " (" . implode(", ", $columns) . ")";
                        }
                }
-               foreach (foreign_keys($table) as $foreign) {
-                       $fields[] = ltrim(format_foreign_key($foreign));
-               }
                foreach ($driver->checkConstraints($table) as $name => $check) {
                        $fields[] = "CONSTRAINT " . idf_escape($name) . " CHECK ($check)";
                }
                return "CREATE TABLE " . table($table) . " (\n\t" . implode(",\n\t", $fields) . "\n)";
        }
 
+       function foreign_keys_sql($table) {
+               $fields = array();
+               foreach (foreign_keys($table) as $foreign) {
+                       $fields[] = ltrim(format_foreign_key($foreign));
+               }
+               return ($fields ? "ALTER TABLE " . table($table) . " ADD\n\t" . implode(",\n\t", $fields) . ";\n\n" : "");
+       }
+
        function truncate_sql($table) {
                return "TRUNCATE TABLE " . table($table);
        }