库表管理、数据库表操作方法、 Show tables 获取表结构

注意:连接数据库账户需要一定权限才能操作,最好管理员级别的账户


功能介绍

1.建表

2.获取表信息

3.修改表操作

4.创建视图、索引等

5.删除视图、函数、存储过程等。


1、使用示例

//例1 获取所有表
var tables = db.DbMaintenance.GetTableInfoList(false);//true 走缓存 false不走缓存
foreach (var table in tables)
{
     Console.WriteLine(table.Description);//输出表信息
     
     //获取列信息
     //var columns=db.DbMaintenance.GetColumnInfosByTableName("表名",false);
}

//例2
db.DbMaintenance.IsAnyTable("tablename",false)//验证表名是否缓存不走缓存


2、全部方法

注意:用查询方法时看有没有 isCache重载, true是走缓存,false是不走缓存

注意:用查询方法时看有没有 isCache重载, true是走缓存,false是不走缓存

名称备注返回类型
GetDataBaseList获取所有数据库名称List
GetViewInfoList查询所有视图List
GetTableInfoList获取所有表,查询所有的表 (GetTableInfoList(是否缓存))List
GetColumnInfosByTableName

获取列根据表名,获取字段,字段信

GetColumnInfosByTableName(表名,是否缓存)

List
GetIsIdentities获取自增列List
GetPrimaries获取主键List
IsAnyTable表是否存在,判断表存不存在 ( IsAny(表名,是否缓存))bool
IsAnyColumn列是否存在bool
IsPrimaryKey主键是否存在bool
IsIdentity自增是否存在bool
IsAnyConstraint约束是否存在bool
DropTable删除表bool
TruncateTable清空表bool
CreateTable(看标题3)

看标题3来实现建表

bool
AddColumn添加列bool
UpdateColumn更新列bool
AddPrimaryKey添加主键bool
DropConstraint删除约束bool
BackupDataBase备份库bool
BackupTable备份表 bool
DropColumn删除列bool
RenameColumn重命名列bool
AddDefaultValue添加默认值bool
AddTableRemark添加表描述,表注释bool
AddColumnRemark添加列描述,表注释bool
DeleteColumnRemark删除列描述,表注释bool
RenameTable重命名表bool
CreateIndex创建索引,唯一约束(唯一索引) bool
IsAnyIndex索引是否存在 bool
GetProcList获取存储过程名字集合List
GetIndexList获取所有索引名字集合List
CreateView(看标题3.3)创建视图 5.1.4.106bool
GetFuncList获取函数(建函数最好命名有规则有些非自定义的也出来)List
DropView删除视图 5.1.4.106bool
DropFunc删除函数5.1.4.106bool
DropProc删除存储过程 5.1.4.106bool
GetDbTypes获取数据库类型集合5.1.4.106List
GetTriggerNames根据表名获取触发器集合5.1.4.106List


3、特殊方法

3.1 无实体建表 (5.1.4.60

该方法是在无实体的情况下建表 ,并且支持实体AOP

var type = db.DynamicBuilder().CreateClass("UnitEntityA",
          new SugarTable()
          {
                   TableDescription = "表备注",
                   //DisabledUpdateAll=true 可以禁止更新只创建
           })
       .CreateProperty("Id", typeof(int), 
         new SugarColumn() {IsPrimaryKey=true,IsIdentity=true,ColumnDescription="列备注"})
       
       .CreateProperty("Name", typeof(string), 
          new SugarColumn() {Length=200, ColumnDescription = "列备注" })
          
        //如果有ColumnDataType那么类型以ColumnDataType为准ColumnDataType对多库支持差
        .CreateProperty("Name2", typeof(string), 
                   new SugarColumn() { ColumnDataType="varchar(max)" })
          
       .BuilderType();
     
 
 db.CodeFirst.InitTables(type);//创建表
 
 //详介说明
 //typeof(xx)是多库通过类型会自动根据不同数据库创建相应的数据库类型
 //new SugarColumn() { ColumnDataType="varchar(50)" }  可以强制设置数据库类型,会覆盖typeof(xxx)
 //SugarColumn的说明看文档:迁移

动态拼接和增删查改:https://www.donet5.com/Home/Doc?typeId=2562

3.2 有实体建表 (文档:迁移)

 db.CodeFirst.InitTables(typeof(T));//具体用法看文档迁移

3.3 创建视图

5.1.4.106-preview22+

//不存在创建,内部有判断
db.QueryableByObject(typeof(Order)).CreateView("view_{0}");


关闭
文档:SqlSugar5.0