From 2f237dfa045349d695e1051c53b591c02b0afc47 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 26 Feb 2025 21:39:45 +0100 Subject: [PATCH] MS SQL export: Create foreign keys after all tables --- adminer/drivers/mssql.inc.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index d7f711be..6a7825a1 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -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); }