/// <summary> /// Builds the sql result. /// </summary> /// <param name="sql">The sql.</param> /// <returns>An ISqlResult.</returns> public ISqlResult BuildSqlResult(ISql sql) { return(sql switch { IQuery query => BuildQuery(query), IfSql ifSql => BuilderIfSql(ifSql), StringSql stringSql => BuilderStringSql(stringSql), ExistSql existSql => BuilderExist(existSql), CountDatabaseSql countDatabaseSql => BuildCountForDatabase(countDatabaseSql), DeleteDatabaseSql deleteDatabaseSql => BuildDeleteDatabase(deleteDatabaseSql), AllTableNamesSql allTableNamesSql => BuildAllTableName(allTableNamesSql), CreateDatabaseSql createDatabaseSql => BuildCreateDatabase(createDatabaseSql), AllDatabaseSql allDatabaseSql => BuildAllDatabase(allDatabaseSql), CreateTableSql createTableSql => BuildCreateTable(createTableSql), CountTableSql countTableSql => BuildTableCount(countTableSql), UpdateTableNameSql updateTableNameSql => BuildUpdateTableName(updateTableNameSql), DeleteTableSql deleteTableSql => BuildDeleteTable(deleteTableSql), ColumsNamesSql columsNamesSql => BuildColumnNames(columsNamesSql), CountColumsSql countColumsSql => BuildColumnsCount(countColumsSql), RenameColumnSql renameColumnSql => BuildRenameColumnsName(renameColumnSql), UpdateColumnsSql updateColumnsSql => BuildUpdateColumns(updateColumnsSql), AddColumnsSql addColumnsSql => BuildAddColumns(addColumnsSql), DeleteColumsSql deleteColumsSql => BuildDeleteColumn(deleteColumsSql), CreateIndexSql createIndexSql => BuildCreateIndex(createIndexSql), DeleteIndexSql deleteIndexSql => BuildDeleteIndex(deleteIndexSql), CountIndexSql countIndexSql => BuildIndexCount(countIndexSql), RenameIndexSql renameIndexSql => RenameIndexSql(renameIndexSql), DeleteSql deleteSql => BuildDeleteSql(deleteSql), InsertSql insertSql => BuildInsertSql(insertSql), UpdateSql updateSql => BuildUpdateSql(updateSql), _ => new ParmsSqlResult() });
/// <summary> /// Builds the add colums. /// </summary> /// <param name="addColumnsSql">The add columns sql.</param> /// <returns>An ISqlResult.</returns> protected virtual ISqlResult BuildAddColumns(AddColumnsSql addColumnsSql) { var r = new ParmsSqlResult(); var sqlType = _typeMap.GetSqlType(addColumnsSql.TypeCode.ToString()); var sql = $"alter table {addColumnsSql.TableName} add column {addColumnsSql.ColumnName} {sqlType}"; if (addColumnsSql.Lentgh < 0) { throw new ArgumentException("长度不能为小于0"); } var lengthStr = GetLengthStr(addColumnsSql.Lentgh, addColumnsSql.TypeCode); sql = $"{sql}{lengthStr}"; if (addColumnsSql.IsNotNull) { sql = $"{sql} not null"; } r.SQL = sql; return(r); }