diff --git a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs index 37281ef07..5de512e46 100644 --- a/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs +++ b/Src/Asp.Net/SqlSugar/Abstract/DbMaintenanceProvider/Methods.cs @@ -92,6 +92,10 @@ namespace SqlSugar { return new List(); } + public virtual List GetTriggerNames(string tableName) + { + 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 f1f777ea8..bfd0543b8 100644 --- a/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Interface/IDbMaintenance.cs @@ -19,6 +19,7 @@ namespace SqlSugar List GetProcList(string dbName); List GetIndexList(string tableName); List GetFuncList(); + List GetTriggerNames(string tableName); #endregion #region Check @@ -40,7 +41,7 @@ namespace SqlSugar bool DropView(string viewName); bool DropFunction(string funcName); bool DropProc(string procName); -; bool DropTable(params string[] tableName); + bool DropTable(params string[] tableName); bool DropTable(params Type[] tableEntityTypes); bool DropTable(); bool DropTable(); diff --git a/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Dm/DbMaintenance/DmDbMaintenance.cs index d4eb3cf34..97bca1fc4 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 GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT trigger_name +FROM all_triggers +WHERE table_name = '" + tableName + "'"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery(" SELECT object_name\r\nFROM all_objects\r\nWHERE object_type = 'FUNCTION' AND owner = USER "); diff --git a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs index 1449f70fd..a0d3fc817 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Kdbndp/DbMaintenance/KdbndpDbMaintenance.cs @@ -240,6 +240,12 @@ namespace SqlSugar #endregion #region Methods + public override List GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT tgname +FROM pg_trigger +WHERE tgrelid = '" + tableName + "'::regclass"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery(" SELECT routine_name\r\nFROM information_schema.routines\r\nWHERE lower( routine_schema ) = '" + GetSchema().ToLower() + "' AND routine_type = 'FUNCTION' "); diff --git a/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs index 6c17a94f0..2f715e385 100644 --- a/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/MySql/DbMaintenance/MySqlDbMaintenance.cs @@ -283,6 +283,12 @@ namespace SqlSugar #endregion #region Methods + public override List GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT TRIGGER_NAME +FROM INFORMATION_SCHEMA.TRIGGERS +WHERE EVENT_OBJECT_TABLE = '"+tableName+"'"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery(" SELECT routine_name\r\nFROM information_schema.ROUTINES\r\nWHERE routine_schema = (SELECT DATABASE()) AND routine_type = 'FUNCTION'; "); diff --git a/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Oracle/DbMaintenance/OracleDbMaintenance.cs index 762794e08..ed47ddf79 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 GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT trigger_name +FROM all_triggers +WHERE table_name = '"+tableName+"'"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery(" SELECT object_name\r\nFROM all_objects\r\nWHERE object_type = 'FUNCTION' AND owner = USER "); diff --git a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs index 1dbc6a422..3cbf567ae 100644 --- a/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/PostgreSQL/DbMaintenance/PostgreSQLDbMaintenance.cs @@ -250,6 +250,12 @@ namespace SqlSugar #endregion #region Methods + public override List GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT tgname +FROM pg_trigger +WHERE tgrelid = '"+tableName+"'::regclass"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery(" SELECT routine_name\r\nFROM information_schema.routines\r\nWHERE lower( routine_schema ) = '" + GetSchema().ToLower() + "' AND routine_type = 'FUNCTION' "); diff --git a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs index 7eb8dfc1a..223e51c76 100644 --- a/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/SqlServer/DbMaintenance/SqlServerDbMaintenance.cs @@ -321,6 +321,14 @@ namespace SqlSugar #endregion #region Methods + public override List GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT DISTINCT sysobjects.name AS TriggerName +FROM sysobjects +JOIN syscomments ON sysobjects.id = syscomments.id +WHERE sysobjects.xtype = 'TR' +AND syscomments.text LIKE '%"+tableName+"%'"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery("SELECT name\r\nFROM sys.objects\r\nWHERE type_desc = 'SQL_SCALAR_FUNCTION' "); diff --git a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs index 8d4db8cfb..978d8c3f8 100644 --- a/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs +++ b/Src/Asp.Net/SqlSugar/Realization/Sqlite/DbMaintenance/SqliteDbMaintenance.cs @@ -258,6 +258,13 @@ namespace SqlSugar #endregion #region Methods + public override List GetTriggerNames(string tableName) + { + return this.Context.Ado.SqlQuery(@"SELECT name +FROM sqlite_master +WHERE type = 'trigger' +AND sql LIKE '%"+tableName+"%'"); + } public override List GetFuncList() { return this.Context.Ado.SqlQuery(" SELECT name\r\nFROM sqlite_master\r\nWHERE type = 'table' AND name NOT LIKE 'sqlite_%' ");