diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index 5de512e46..eef96bec4 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -96,6 +96,10 @@ namespace SqlSugar { return new List(); } + public virtual List GetDbTypes() + { + return new List(); + } #endregion #region Check diff --git a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs index bfd0543b8..d206c0200 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs @@ -20,6 +20,7 @@ namespace SqlSugar List GetIndexList(string tableName); List GetFuncList(); List GetTriggerNames(string tableName); + List GetDbTypes(); #endregion #region Check diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs index 97bca1fc4..bdc3137f2 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs @@ -267,6 +267,12 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT DISTINCT DATA_TYPE +FROM DBA_TAB_COLUMNS +WHERE OWNER = user "); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT trigger_name diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs index a0d3fc817..d975a7df7 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs @@ -240,6 +240,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT DISTINCT data_type +FROM information_schema.columns"); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT tgname diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs index 2f715e385..efc309f32 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -283,6 +283,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT DISTINCT DATA_TYPE +FROM information_schema.COLUMNS"); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT TRIGGER_NAME diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs index ed47ddf79..7d2651e2c 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs @@ -272,6 +272,12 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT DISTINCT DATA_TYPE +FROM DBA_TAB_COLUMNS +WHERE OWNER = user "); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT trigger_name diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs index 3cbf567ae..b8a5aa2bf 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs @@ -250,6 +250,11 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT DISTINCT data_type +FROM information_schema.columns"); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT tgname diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index 223e51c76..fbca40f77 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -321,6 +321,12 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT name +FROM sys.types +WHERE is_user_defined = 0;"); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT DISTINCT sysobjects.name AS TriggerName diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs index 978d8c3f8..5b3fc66e3 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs @@ -258,6 +258,16 @@ namespace SqlSugar #endregion #region Methods + public override List GetDbTypes() + { + return this.Context.Ado.SqlQuery(@"SELECT 'TEXT' AS Data_Type +UNION +SELECT 'INTEGER' +UNION +SELECT 'REAL' +UNION +SELECT 'BLOB';"); + } public override List GetTriggerNames(string tableName) { return this.Context.Ado.SqlQuery(@"SELECT name