using System.Data.SqlClient;
Console.WriteLine($"Error: {ex.Message}");
static void MoveAndDeleteData()
string connectionString = "YourConnectionString";
string selectQuery = "SELECT * FROM MainData WHERE isDeleted = 1";
string insertQuery = "INSERT INTO MainData_History SELECT * FROM MainData WHERE isDeleted = 1";
string deleteQuery = "DELETE FROM MainData WHERE ID IN ({0})";
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlTransaction transaction = connection.BeginTransaction())
using (SqlCommand insertCommand = new SqlCommand(insertQuery, connection, transaction))
insertCommand.ExecuteNonQuery();
using (SqlCommand selectCommand = new SqlCommand(selectQuery, connection, transaction))
using (SqlDataReader reader = selectCommand.ExecuteReader())
int totalRows = reader.FieldCount;
for (int i = 0; i < totalRows; i += batchSize)
StringBuilder deleteIds = new StringBuilder();
for (int j = 0; j < batchSize && (i + j) < totalRows; j++)
deleteIds.Append(reader[i + j] + ",");
if (deleteIds.Length > 0)
if (deleteIds.Length > 0)
using (SqlCommand deleteCommand = new SqlCommand(string.Format(deleteQuery, deleteIds.ToString()), connection, transaction))
deleteCommand.ExecuteNonQuery();
throw new Exception($"Error in database operation: {ex.Message}");