Skip to content

Commit 1248c23

Browse files
committed
sqlsrv驱动添加自动获取主键字段
1 parent e13d3c1 commit 1248c23

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

Extend/Driver/Db/DbSqlsrv.class.php

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -204,22 +204,24 @@ private function getAll() {
204204
* @return array
205205
*/
206206
public function getFields($tableName) {
207-
$result = $this->query("SELECT column_name, data_type, column_default, is_nullable
208-
FROM information_schema.tables AS t
209-
JOIN information_schema.columns AS c
210-
ON t.table_catalog = c.table_catalog
211-
AND t.table_schema = c.table_schema
212-
AND t.table_name = c.table_name
213-
WHERE t.table_name = '$tableName'");
214-
$info = array();
207+
$result = $this->query("
208+
SELECT column_name,data_type,column_default,is_nullable
209+
FROM information_schema.tables AS t
210+
JOIN information_schema.columns AS c
211+
ON t.table_catalog = c.table_catalog
212+
AND t.table_schema = c.table_schema
213+
AND t.table_name = c.table_name
214+
WHERE t.table_name = '{$tableName}'");
215+
$pk = $this->query("SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='{$tableName}'");
216+
$info = array();
215217
if($result) {
216218
foreach ($result as $key => $val) {
217219
$info[$val['column_name']] = array(
218220
'name' => $val['column_name'],
219221
'type' => $val['data_type'],
220222
'notnull' => (bool) ($val['is_nullable'] === ''), // not null is empty, null is yes
221223
'default' => $val['column_default'],
222-
'primary' => false,
224+
'primary' => $val['column_name'] == $pk[0]['COLUMN_NAME'],
223225
'autoinc' => false,
224226
);
225227
}

0 commit comments

Comments
 (0)