List<DTOs.Table> GetTables(Microsoft.SqlServer.Management.Smo.Database database) { var tables = new List<DTOs.Table>(); foreach (Microsoft.SqlServer.Management.Smo.Table dbTable in database.Tables) { var table = new DTOs.Table { Name = Helpers.ConvertNaming(dbTable.Name) }; tables.Add(table); foreach (Microsoft.SqlServer.Management.Smo.Column dbColumn in dbTable.Columns) { DataTable tb = dbColumn.EnumForeignKeys(); var sqlType = String.Empty; switch (dbColumn.DataType.SqlDataType) { case SqlDataType.BigInt: case SqlDataType.Int: case SqlDataType.SmallInt: sqlType = "NUMBER(12)"; break; case SqlDataType.DateTime2: case SqlDataType.DateTime: sqlType = "DATE"; break; case SqlDataType.NVarCharMax: case SqlDataType.VarCharMax: sqlType = "varchar2(4000)"; break; case SqlDataType.NVarChar: case SqlDataType.VarChar: sqlType = "varchar2(255)"; break; case SqlDataType.UniqueIdentifier: sqlType = "CHAR(36)"; break; case SqlDataType.Float: sqlType = "NUMBER(12,5)"; break; case SqlDataType.Bit: sqlType = "NUMBER(1,0)"; break; case SqlDataType.Decimal: sqlType = "NUMBER(12, 2)"; break; case SqlDataType.VarBinary: case SqlDataType.VarBinaryMax: sqlType = "BLOB"; break; default: break; } if (dbColumn.InPrimaryKey) table.PrimaryKey = Helpers.ConvertNaming(dbColumn.Name); table.Columns.Add(new TableColumn { IsNullable = dbColumn.Nullable, Name = Helpers.ConvertNaming(dbColumn.Name), Type = sqlType }); } } return tables; }
List <DTOs.Table> GetTables(Microsoft.SqlServer.Management.Smo.Database database) { var tables = new List <DTOs.Table>(); foreach (Microsoft.SqlServer.Management.Smo.Table dbTable in database.Tables) { var table = new DTOs.Table { Name = Helpers.ConvertNaming(dbTable.Name) }; tables.Add(table); foreach (Microsoft.SqlServer.Management.Smo.Column dbColumn in dbTable.Columns) { DataTable tb = dbColumn.EnumForeignKeys(); var sqlType = String.Empty; switch (dbColumn.DataType.SqlDataType) { case SqlDataType.BigInt: case SqlDataType.Int: case SqlDataType.SmallInt: sqlType = "NUMBER(12)"; break; case SqlDataType.DateTime2: case SqlDataType.DateTime: sqlType = "DATE"; break; case SqlDataType.NVarCharMax: case SqlDataType.VarCharMax: sqlType = "varchar2(4000)"; break; case SqlDataType.NVarChar: case SqlDataType.VarChar: sqlType = "varchar2(255)"; break; case SqlDataType.UniqueIdentifier: sqlType = "CHAR(36)"; break; case SqlDataType.Float: sqlType = "NUMBER(12,5)"; break; case SqlDataType.Bit: sqlType = "NUMBER(1,0)"; break; case SqlDataType.Decimal: sqlType = "NUMBER(12, 2)"; break; case SqlDataType.VarBinary: case SqlDataType.VarBinaryMax: sqlType = "BLOB"; break; default: break; } if (dbColumn.InPrimaryKey) { table.PrimaryKey = Helpers.ConvertNaming(dbColumn.Name); } table.Columns.Add(new TableColumn { IsNullable = dbColumn.Nullable, Name = Helpers.ConvertNaming(dbColumn.Name), Type = sqlType }); } } return(tables); }