Skip to content

Here is a small piece of code I created to clone a database but only using the first 10 records for each table  #151

@OscarAgreda

Description

@OscarAgreda

//
var sqlQueryStr = "";
var sqlQueryTruncate = "";
foreach (var table in schema.Tables)
{
// I dont want to clone tables that meet this condition
var goodTable = false;
if (!table.Name.StartsWith("
"))
{
goodTable = true;

            }

            var goodColumns = false;
            foreach (var column in table.Columns)
            {
            // i use this a condition each table i want must have
                if (column.Name == "RowId")
                {
                    goodColumns = true;

                }
          
            }

            if (goodColumns && goodTable)
            {

                var className = table.NetName;
                var cw = new ClassWriter(table, _codeWriterSettings);
                var txt = cw.Write();

                sqlQueryTruncate = sqlQueryTruncate + "TRUNCATE TABLE [New_Database_Name].[dbo].["+table.Name+"]\r\nGo\r\n";

                sqlQueryStr = sqlQueryStr + "\r\n\r\nSET IDENTITY_INSERT [New_Database_Name].[dbo].["+table.Name+"] ON \r\nGo\r\n\r\nINSERT TOP (10) \r\nINTO [New_Database_Name].[dbo].["+table.Name+"] (";

                var insertStr = "";
                foreach (var column in table.Columns)
                {
                    insertStr = insertStr + "["+column.Name+"], ";

                }

                insertStr = insertStr.Substring(0, insertStr.Length - 2);
                sqlQueryStr = sqlQueryStr + "\r\n\t" + insertStr + ")";
                sqlQueryStr = sqlQueryStr + "\r\nSELECT\r\n\t" + insertStr;
                sqlQueryStr = sqlQueryStr + "\r\nFROM\r\n\t[OldBig_Database_Name].[dbo].["+table.Name+"]\r\nORDER BY\r\n\tRowId\r\nGo\r\n\r\nSET IDENTITY_INSERT [New_Database_Name].[dbo].["+table.Name+"] OFF\r\nGo";


            }



        }

        var insertTop10Script = WriteSqlFile(directory, "SqlInsertTop10", sqlQueryStr);
        var truncateScript = WriteSqlFile(directory, "TruncateTables", sqlQueryTruncate);

        //

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions