]> git.joonet.de Git - adminer.git/commitdiff
Fix the primary key for MS SQL
authorTakashi SHIRAI <shirai@nintendo.co.jp>
Thu, 6 Mar 2025 06:06:31 +0000 (15:06 +0900)
committerJakub Vrana <jakub@vrana.cz>
Thu, 6 Mar 2025 07:54:59 +0000 (08:54 +0100)
Signed-off-by: Takashi SHIRAI <shirai@nintendo.co.jp>
adminer/drivers/mssql.inc.php
changes.txt

index 76b099df4e6c90b288e0a3d0b4d6855ae6fd4e17..1f6eff04b852cdc8ecf089e037680d581592af3e 100644 (file)
@@ -335,11 +335,13 @@ WHERE schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND type IN ('S', 'U', 'V')
                $comments = get_key_vals("SELECT objname, cast(value as varchar(max)) FROM fn_listextendedproperty('MS_DESCRIPTION', 'schema', " . q(get_schema()) . ", 'table', " . q($table) . ", 'column', NULL)");
                $return = array();
                foreach (
-                       get_rows("SELECT c.max_length, c.precision, c.scale, c.name, c.is_nullable, c.is_identity, c.collation_name, t.name type, CAST(d.definition as text) [default], d.name default_constraint
+                       get_rows("SELECT c.max_length, c.precision, c.scale, c.name, c.is_nullable, c.is_identity, c.collation_name, t.name type, CAST(d.definition as text) [default], d.name default_constraint, i.is_primary_key
 FROM sys.all_columns c
 JOIN sys.all_objects o ON c.object_id = o.object_id
 JOIN sys.types t ON c.user_type_id = t.user_type_id
 LEFT JOIN sys.default_constraints d ON c.default_object_id = d.object_id
+LEFT JOIN sys.index_columns ic ON c.object_id = ic.object_id AND c.column_id = ic.column_id
+LEFT JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
 WHERE o.schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND o.type IN ('S', 'U', 'V') AND o.name = " . q($table)) as $row
                ) {
                        $type = $row["type"];
@@ -358,7 +360,7 @@ WHERE o.schema_id = SCHEMA_ID(" . q(get_schema()) . ") AND o.type IN ('S', 'U',
                                "auto_increment" => $row["is_identity"],
                                "collation" => $row["collation_name"],
                                "privileges" => array("insert" => 1, "select" => 1, "update" => 1),
-                               "primary" => $row["is_identity"], //! or indexes.is_primary_key
+                               "primary" => $row["is_primary_key"],
                                "comment" => $comments[$row["name"]],
                        );
                }
index 77793a2272f4566532419c289cce813019e7eeda..403148c7a92fedc1ac23ef27570084fc3b102bf5 100644 (file)
@@ -20,6 +20,7 @@ MS SQL PDO: Support offset
 MS SQL: Remove support for MSSQL extension
 MS SQL: Add support for PDO_SQLSRV extension
 MS SQL: Link help from sys tables
+MS SQL: Fix highlighting columns as primary keys
 MongoDB: Remove support for deprecated extension mongo
 Elasticsearch: Fix text search on boolean fields
 Plugins: Adminer code is now in a namespace