/// <summary>
        /// Gets ValidFrom column (sql formatted)
        /// </summary>
        /// <param name="scdColumns">SCD column list</param>
        /// <param name="spaces">Number of space at the beginnung of a row</param>
        /// <returns>ValidFrom column</returns>
        public static string GetSqlValidFromWithDataType(Dictionary <string, SCDConfiguration> scdList, int spaces)
        {
            string newLine = spaces > 0 ? Environment.NewLine : "";
            string result  = "";

            foreach (SCDConfiguration scd in scdList.Values)
            {
                string columnName = SCDHelper.AddBrackets(scd.TableName + "_" + scd.ValidFrom.ColumnName);

                result += (",").PadLeft(spaces + 1) + columnName + " " + scd.ValidFrom.DataType + newLine;
            }

            return(result);
        }
        /// <summary>
        /// Gets ValidFrom column (sql formatted)
        /// </summary>
        /// <param name="scdColumns">SCD column list</param>
        /// <param name="addTableNamePrefix">Add table name prefix?</param>
        /// <param name="prefix">Column prefix</param>
        /// <param name="spaces">Number of space at the beginnung of a row</param>
        /// <returns>ValidFrom column</returns>
        public static string GetSqlValidFrom(Dictionary <string, SCDConfiguration> scdList, bool addTableNamePrefix, string prefix, int spaces)
        {
            string newLine = spaces > 0 ? Environment.NewLine : "";
            string result  = "";

            foreach (SCDConfiguration scd in scdList.Values)
            {
                string columnName = addTableNamePrefix ? scd.TableName + "_" + scd.ValidFrom.ColumnName : scd.ValidFrom.ColumnName;
                columnName = prefix + SCDHelper.AddBrackets(columnName);

                result += (",").PadLeft(spaces + 1) + columnName + newLine;
            }

            return(result);
        }
        /// <summary>
        /// Gets list of SCD columns with datatypes (sql formatted)
        /// </summary>
        /// <param name="scdColumns">SCD column list</param>
        /// <param name="postfix1">postfix first column</param>
        /// <param name="postfix2">postfix second column</param>
        /// <param name="spaces">Number of space at the beginnung of a row</param>
        /// <param name="generate2ndColumn">Generate 2nd column?</param>
        /// <param name="afterDataType">Text that is inserted after datatype (i.e. NULL)</param>
        /// <param name="prefixColumnName">Prefix for columnname</param>
        /// <returns>list of SCD columns with datatypes (sql formatted)</returns>
        public static string GetSqlColumnListWithDataType(List <SCDColumn> scdColumnList, string postfix1, string postfix2, int spaces, bool generate2ndColumn, string afterDataType, string prefixColumnName)
        {
            string result  = "";
            string newLine = spaces > 0 ? Environment.NewLine : "";
            string prefix1 = "";
            string prefix2 = "";

            SCDHelper.AddBrackets(ref prefix1, ref postfix1);
            SCDHelper.AddBrackets(ref prefix2, ref postfix2);

            foreach (SCDColumn column in scdColumnList)
            {
                result += (",").PadLeft(spaces + 1) + prefix1 + prefixColumnName + column.ColumnName + postfix1 + " " + column.DataType + " " + afterDataType + newLine;
                if (generate2ndColumn)
                {
                    result += (",").PadLeft(spaces + 1) + prefix2 + prefixColumnName + column.ColumnName + postfix2 + " " + column.DataType + " " + afterDataType + newLine;
                }
            }

            return(result);
        }