diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index 562b33ad..f9fb9318 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -571,10 +571,13 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table) function foreign_keys($table) { $return = array(); + $on_actions = array("CASCADE", "NO ACTION", "SET NULL", "SET DEFAULT"); foreach (get_rows("EXEC sp_fkeys @fktable_name = " . q($table) . ", @fktable_owner = " . q(get_schema())) as $row) { $foreign_key = &$return[$row["FK_NAME"]]; $foreign_key["db"] = $row["PKTABLE_QUALIFIER"]; $foreign_key["table"] = $row["PKTABLE_NAME"]; + $foreign_key["on_update"] = $on_actions[$row["UPDATE_RULE"]]; + $foreign_key["on_delete"] = $on_actions[$row["DELETE_RULE"]]; $foreign_key["source"][] = $row["FKCOLUMN_NAME"]; $foreign_key["target"][] = $row["PKCOLUMN_NAME"]; } @@ -724,6 +727,8 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table) } function driver_config() { + global $on_actions; + $on_actions = str_replace('RESTRICT|', '', $on_actions); $types = array(); $structured_types = array(); foreach (array( //! use sys.types diff --git a/adminer/include/bootstrap.inc.php b/adminer/include/bootstrap.inc.php index d5c05511..9d997557 100644 --- a/adminer/include/bootstrap.inc.php +++ b/adminer/include/bootstrap.inc.php @@ -80,6 +80,7 @@ include "./include/adminer.inc.php"; $adminer = (function_exists('adminer_object') ? adminer_object() : new Adminer); include "../adminer/drivers/mysql.inc.php"; // must be included as last driver +$on_actions = "RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT"; ///< @var string used in foreign_keys() $config = driver_config(); $possible_drivers = $config['possible_drivers']; $jush = $config['jush']; @@ -108,5 +109,3 @@ include "../adminer/include/xxtea.inc.php"; include "../adminer/include/auth.inc.php"; include "./include/editing.inc.php"; include "./include/connect.inc.php"; - -$on_actions = "RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT"; ///< @var string used in foreign_keys() diff --git a/changes.txt b/changes.txt index 11c5a882..68160319 100644 --- a/changes.txt +++ b/changes.txt @@ -4,6 +4,7 @@ SQLite: Add command Check tables 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 MongoDB: Remove support for deprecated extension mongo Adminer-4.17.1 (released 2025-02-25):