public static string GenerateTableDefinition(this DataTable table, string tableName, List <string> idColumns)
        {
            var sql = new StringBuilder();

            sql.AppendFormat("CREATE TABLE [{0}] (", tableName);

            for (int i = 0; i < table.Columns.Count; i++)
            {
                sql.Append($"\n\t[{table.Columns[i].ColumnName}]");

                var sqlType = SqlTypeConverter.Convert(table.Columns[i].DataType);
                sql.Append($" {sqlType}");
                sql.Append(idColumns.Contains(table.Columns[i].ColumnName) ? " NOT NULL" : " NULL");
                sql.Append(",");
            }

            var key = string.Join(", ", idColumns.Select(x => $"[{x}]"));

            sql.Append($"\n\tPRIMARY KEY ({key})");
            sql.Append("\n);");

            return(sql.ToString());
        }