From 5b9a7e6a2a5c8b122d5e8261fc8ee2ff04acfbf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?piexlmax=EF=BC=88=E5=A5=87=E6=B7=BC?= Date: Mon, 19 Feb 2024 10:48:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4mssql=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/system/sys_auto_code_interface.go | 4 ++ server/service/system/sys_auto_code_mssql.go | 38 +++++++++---------- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/server/service/system/sys_auto_code_interface.go b/server/service/system/sys_auto_code_interface.go index 608183170..1d9ad3399 100644 --- a/server/service/system/sys_auto_code_interface.go +++ b/server/service/system/sys_auto_code_interface.go @@ -19,6 +19,10 @@ func (autoCodeService *AutoCodeService) Database(businessDB string) Database { return AutoCodeMysql case "pgsql": return AutoCodePgsql + case "mssql": + return AutoCodeMssql + case "oracle": + return AutoCodeOracle case "sqlite": return AutoCodeSqlite default: diff --git a/server/service/system/sys_auto_code_mssql.go b/server/service/system/sys_auto_code_mssql.go index b32c7e514..25e087371 100644 --- a/server/service/system/sys_auto_code_mssql.go +++ b/server/service/system/sys_auto_code_mssql.go @@ -46,28 +46,28 @@ func (s *autoCodeMssql) GetTables(businessDB string, dbName string) (data []resp func (s *autoCodeMssql) GetColumn(businessDB string, tableName string, dbName string) (data []response.Column, err error) { var entities []response.Column sql := fmt.Sprintf(` -SELECT +SELECT sc.name AS column_name, - st.name AS data_type, - sc.length AS data_type_long, - CASE - WHEN pk.index_id IS NOT NULL THEN 1 + st.name AS data_type, + sc.max_length AS data_type_long, + CASE + WHEN pk.object_id IS NOT NULL THEN 1 ELSE 0 END AS primary_key -FROM - %s.DBO.syscolumns sc -JOIN - systypes st ON sc.xtype=st.xtype -LEFT JOIN - %s.DBO.sysobjects so ON so.name='%s' AND so.xtype='U' -LEFT JOIN - %s.DBO.sysindexes si ON si.id = so.id AND si.indid < 2 -LEFT JOIN - %s.DBO.sysindexkeys sik ON sik.id = si.id AND sik.indid = si.indid AND sik.colid = sc.colid -LEFT JOIN - %s.DBO.syskeyconstraints pk ON pk.constid = sik.constid -WHERE - st.usertype=0 AND sc.id = so.id +FROM + %s.sys.columns sc +JOIN + sys.types st ON sc.user_type_id=st.user_type_id +LEFT JOIN + %s.sys.objects so ON so.name='%s' AND so.type='U' +LEFT JOIN + %s.sys.indexes si ON si.object_id = so.object_id AND si.is_primary_key = 1 +LEFT JOIN + %s.sys.index_columns sic ON sic.object_id = si.object_id AND sic.index_id = si.index_id AND sic.column_id = sc.column_id +LEFT JOIN + %s.sys.key_constraints pk ON pk.object_id = si.object_id +WHERE + st.is_user_defined=0 AND sc.object_id = so.object_id `, dbName, dbName, tableName, dbName, dbName, dbName) if businessDB == "" {