J'ai deux bases de données dans MySQL
et SQL Server
, et je veux créer des tables dans SQL Server
et copier toutes les lignes de la table MySQL
dans la nouvelle table SQL Server
.copier toutes les lignes d'une table à une autre table
Je peux créer table SQL Server
même que MySQL
, avec ce code:
List<String> TableNames = new List<string>();
{
IDataReader reader=
ExecuteReader("SELECT Table_Name FROM information_schema.tables WHERE table_name LIKE 'mavara%'",MySql);
while (reader.Read()) {
TableNames.Add(reader[0].ToString());
}
reader.Close();
}
foreach (string TableName in TableNames) {
IDataReader reader =
ExecuteReader("SELECT Column_Name,IS_NULLABLE,DATA_TYPE FROM information_schema.columns where TABLE_Name='" + TableName + "'",MySql);
List<string[]> Columns = new List<string[]>();
while (reader.Read()) {
string[] column = new string[3];
column[0] = reader[0].ToString();
column[1] = reader[1].ToString();
column[2] = reader[2].ToString();
Columns.Add(column);
}
reader.Close();
// create table
string queryCreatTables= "CREATE TABLE [dbo].[" + TableName + "](\n";
foreach(string[] cols in Columns)
{
queryCreatTables +="["+ cols[0] + "] " + cols[2] + " ";
if (cols[1] == "NO")
queryCreatTables += "NOT NULL";
// else
// queryCreatTables += "NULL";
queryCreatTables += " ,\n ";
}
queryCreatTables += ")";
System.Data.SqlClient.SqlCommand smd =
new System.Data.SqlClient.SqlCommand(queryCreatTables, MsSql);
System.Data.SqlClient.SqlDataReader sreader = smd.ExecuteReader();
sreader.Close();
mais j'ai problème de copier des lignes d'une table dans une autre table.
pour une requête de sélection, j'utilise Idatareader, mais je ne sais pas comment insérer des lignes dans une autre table.
Cela ressemble à quelque chose qui serait vraiment mieux géré au niveau du SGBD. Ou est-ce que cette migration est quelque chose qui est souvent entreprise et vous avez besoin d'un programme pour automatiser la procédure? –
oui. J'ai besoin d'un programme pour gérer cela – atabrizi