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()); }