static void Main(string[] args)
{
string serverName = @"xxxxx\SQLEXPRESS";
string databaseName = "databaseName";
string outputPath = "C:\\ScriptFile1.sql";
string connectionString = $"Server={serverName};Database={databaseName};Integrated Security=true;";
try
{
GenerateInsertScript(connectionString, outputPath);
Console.WriteLine($"Insert script generated successfully: {outputPath}");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
static void GenerateInsertScript(string connectionString, string outputPath)
{
SqlConnection connection = new SqlConnection(connectionString + ";MultipleActiveResultSets=True");
connection.Open();
using (StreamWriter writer = new StreamWriter(outputPath))
{
SqlCommand command = new SqlCommand("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE'", connection);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
string tableName = reader.GetString(0);
GenerateInsertStatements(connection, tableName, writer);
}
}
}
static void GenerateInsertStatements(SqlConnection connection, string tableName, StreamWriter writer)
{
SqlCommand selectCommand = new SqlCommand($"SELECT * FROM {tableName}", connection);
SqlDataReader dataReader = selectCommand.ExecuteReader();
if (dataReader.HasRows)
{
StringBuilder columns = new StringBuilder();
StringBuilder values = new StringBuilder();
for (int i = 0; i < dataReader.FieldCount; i++)
{
columns.Append($"{dataReader.GetName(i)}, ");
values.Append($"@{dataReader.GetName(i)}, ");
}
columns.Length -= 2; // Remove the trailing comma and space
values.Length -= 2; // Remove the trailing comma and space
writer.WriteLine($"-- Insert statements for {tableName}");
writer.WriteLine($"INSERT INTO {tableName} ({columns.ToString()}) VALUES");
while (dataReader.Read())
{
writer.Write("(");
for (int i = 0; i < dataReader.FieldCount; i++)
{
if (dataReader.FieldCount - 1 == i)
{
writer.Write($"'{EscapeSqlString(dataReader[i].ToString())}' ");
}
else
{
writer.Write($"'{EscapeSqlString(dataReader[i].ToString())}', ");
}
}
writer.WriteLine("),");
}
}
writer.WriteLine();
}
static string EscapeSqlString(string input)
{
// Implement any necessary SQL string escaping logic here
return input.Replace("'", "''");
}