/// <summary> /// 获取所有数据库表名 /// </summary> /// <param name="db"></param> /// <returns></returns> public List <string> GetTableNames(SqlSugarClient db) { var tableNameList = db.SqlQuery <string>("select name from sysobjects where xtype in ('U','V') ").ToList(); for (int i = 0; i < tableNameList.Count; i++) { var tableName = tableNameList[i]; tableNameList[i] = db.GetClassTypeByTableName(tableName); } return(tableNameList); }
/// <summary> /// 获取所有数据库表名 /// </summary> /// <param name="db"></param> /// <returns></returns> public List <string> GetTableNames(SqlSugarClient db) { var isLog = db.IsEnableLogEvent; db.IsEnableLogEvent = false; string sql = SqlSugarTool.GetCreateClassSql(null); var tableNameList = db.SqlQuery <string>(sql).ToList(); for (int i = 0; i < tableNameList.Count; i++) { var tableName = tableNameList[i]; tableNameList[i] = db.GetClassTypeByTableName(tableName); } db.IsEnableLogEvent = isLog; return(tableNameList); }
/// <summary> /// 获取Schema和表名的集合 /// </summary> /// <param name="db"></param> /// <returns></returns> internal static List <KeyValue> GetSchemaList(SqlSugarClient db) { var cm = CacheManager <List <KeyValue> > .GetInstance(); string cacheKey = "SqlSugarTool.GetSchemaList"; if (cm.ContainsKey(cacheKey)) { return(cm[cacheKey]); } else { var reval = db.SqlQuery <KeyValue>(@"select s.name as [Key],t.name as [Value] from sys.sysobjects t , sys.schemas s where t.xtype in ('U','V') and t.uid = s.schema_id"); cm.Add(cacheKey, reval, cm.Day); return(reval); } }
/// <summary> /// 根据表名获取列名 /// </summary> /// <param name="db"></param> /// <param name="tableName"></param> /// <returns></returns> internal static List <string> GetColumnsByTableName(SqlSugarClient db, string tableName) { string key = "GetColumnNamesByTableName" + tableName; var cm = CacheManager <List <string> > .GetInstance(); if (cm.ContainsKey(key)) { return(cm[key]); } else { var isLog = db.IsEnableLogEvent; db.IsEnableLogEvent = false; string sql = " SHOW columns FROM " + tableName.GetTranslationSqlName(); var reval = db.SqlQuery <string>(sql); db.IsEnableLogEvent = isLog; cm.Add(key, reval, cm.Day); return(reval); } }
/// <summary> /// 获取所有需要生成多语言的视图名称 /// </summary> /// <param name="db"></param> /// <returns></returns> internal static List <string> GetLanguageViewNameList(SqlSugarClient db) { string key = "LanguageHelper.GetViewNameList"; var cm = CacheManager <List <string> > .GetInstance(); if (cm.ContainsKey(key)) { return(cm[key]); } else { var list = db.SqlQuery <string>(@" select a.name from sys.objects a JOIN sys.sql_modules b on a.[object_id]=b.[object_id] where [type]='v' and b.[definition] like '%" + db.Language.ReplaceViewStringKey + @"%' and a.name not like '%" + PreSuffix + @"%' ").ToList(); cm.Add(key, list, cm.Day); return(list); } }
// 获取表结构信息 public List <PubModel.DataTableMap> GetTableColumns(SqlSugarClient db, string tableName) { string sql = @"SELECT Sysobjects.name AS TABLE_NAME , syscolumns.Id AS TABLE_ID, syscolumns.name AS COLUMN_NAME , systypes.name AS DATA_TYPE , syscolumns.length AS CHARACTER_MAXIMUM_LENGTH , sys.extended_properties.[value] AS COLUMN_DESCRIPTION , syscomments.text AS COLUMN_DEFAULT , syscolumns.isnullable AS IS_NULLABLE FROM syscolumns INNER JOIN systypes ON syscolumns.xtype = systypes.xtype LEFT JOIN sysobjects ON syscolumns.id = sysobjects.id LEFT OUTER JOIN sys.extended_properties ON ( sys.extended_properties.minor_id = syscolumns.colid AND sys.extended_properties.major_id = syscolumns.id ) LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id WHERE syscolumns.id IN ( SELECT id FROM SYSOBJECTS WHERE xtype in( 'U','V') ) AND ( systypes.name <> 'sysname' ) AND Sysobjects.name='" + tableName + "' AND systypes.name<>'geometry' AND systypes.name<>'geography' ORDER BY syscolumns.colid"; return(db.SqlQuery <PubModel.DataTableMap>(sql)); }
/// <summary> /// 获取表结构信息 /// </summary> /// <param name="db"></param> /// <param name="tableName"></param> /// <returns></returns> public List <PubModel.DataTableMap> GetTableColumns(SqlSugarClient db, string tableName) { string sql = SqlSugarTool.GetTtableColumnsInfo(tableName); return(db.SqlQuery <PubModel.DataTableMap>(sql)); }