@Override
    public String asSqlType(String type, Integer length, Integer scale) {
        if (SubStyleType.CHAR.equals(type)) {
            return new SqlType("nchar", length, null).toString();
        } else if (SubStyleType.VARCHAR.equals(type)) {
            return new SqlType("nvarchar", length, null).toString();
        } else if (SubStyleType.TEXT.equals(type)) {
            return "ntext";
        } else if (SubStyleType.LONG.equals(type)) {
            return "bigint";
        } else if (SubStyleType.BIGINT.equals(type)) {
            return "decimal(38, 0)";
        } else if (SubStyleType.DOUBLE.equals(type)) {
            return "float";
        } else if (SubStyleType.DATETIME.equals(type)) {
            return "datetime";
        } else if (SubStyleType.TIMESTAMP.equals(type)) {
            return "datetime";
        } else if (SubStyleType.INPUTSTREAM.equals(type)) {
            return "image";
        }
        return super.asSqlType(type, length, scale);
    }