From d7079f1778e7a6ef8f8ba40b9baf454255a92876 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Sun, 28 Nov 2010 17:39:07 +0100 Subject: [PATCH] MS SQL: Foreign key in create table --- adminer/create.inc.php | 2 +- adminer/drivers/mssql.inc.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/adminer/create.inc.php b/adminer/create.inc.php index 4c63a376..2b5bd327 100644 --- a/adminer/create.inc.php +++ b/adminer/create.inc.php @@ -44,7 +44,7 @@ if ($_POST && !$error && !$_POST["add"] && !$_POST["drop_col"] && !$_POST["up"] $fields[] = array($field["orig"], $process_field, $after); } if (isset($foreign_key)) { - $foreign[] = ($TABLE != "" ? "ADD" : " ") . " FOREIGN KEY (" . idf_escape($field["field"]) . ") REFERENCES " . table($foreign_keys[$field["type"]]) . " (" . idf_escape($type_field["field"]) . ")" . (in_array($field["on_delete"], $on_actions) ? " ON DELETE $field[on_delete]" : ""); + $foreign[idf_escape($field["field"])] = ($TABLE != "" ? "ADD" : " ") . " FOREIGN KEY (" . idf_escape($field["field"]) . ") REFERENCES " . table($foreign_keys[$field["type"]]) . " (" . idf_escape($type_field["field"]) . ")" . (in_array($field["on_delete"], $on_actions) ? " ON DELETE $field[on_delete]" : ""); } $after = "AFTER " . idf_escape($field["field"]); } elseif ($field["orig"] != "") { diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index 2ee9ecb5..422ca301 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -405,11 +405,11 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table) $column = idf_escape($field[0]); $val = $field[1]; if (!$val) { - $alter["DROP"][] = " COLUMN $field[0]"; + $alter["DROP"][] = " COLUMN $column"; } else { $val[1] = preg_replace("~( COLLATE )'(\\w+)'~", "\\1\\2", $val[1]); if ($field[0] == "") { - $alter["ADD"][] = "\n " . implode("", $val); + $alter["ADD"][] = "\n " . implode("", $val) . ($table == "" ? substr($foreign[$val[0]], 16 + strlen($val[0])) : ""); // 16 - strlen(" FOREIGN KEY ()") } else { unset($val[6]); //! identity can't be removed if ($column != $val[0]) {