sql >> Database >  >> RDS >> Sqlserver

Exporteer SQL Server-gegevens naar CSV-bestand

Voor wat het waard is, als je alleen maar een vraag wilt stellen en de inhoud ergens wilt dumpen, lijkt het alsof je wat meer werk doet dan nodig is. De complexiteit kan de uitdaging bij het debuggen vergroten.

Een echt kaal voorbeeld van het lezen van een query en het sturen van uitvoer naar een bestand kan er als volgt uitzien:

SqlConnection sqlCon = new SqlConnection("REMOVED");
sqlCon.Open(); 

SqlCommand sqlCmd = new SqlCommand(
    "Select * from products.products", sqlCon);
SqlDataReader reader = sqlCmd.ExecuteReader();

string fileName = "test.csv";
StreamWriter sw = new StreamWriter(fileName);
object[] output = new object[reader.FieldCount];

for (int i = 0; i < reader.FieldCount; i++)
    output[i] = reader.GetName(i);

sw.WriteLine(string.Join(",", output));

while (reader.Read())
{
    reader.GetValues(output);
    sw.WriteLine(string.Join(",", output));
}

sw.Close();
reader.Close();
sqlCon.Close();

Hoewel het er misschien niet veel korter uitziet dan de code die je opsomt, denk ik dat het eenvoudiger is en gemakkelijker te debuggen zal zijn, direct uit de doos. Ik heb dit niet getest, dus ik kan niet met zekerheid zeggen dat het werkt, hoewel ik denk dat het redelijk dichtbij komt.

Nog iets dat het vermelden waard is ... geen van beide is echte CSV-uitvoer. U moet er zeker van zijn dat u ingesloten komma's verwerkt, tekens teruggeeft, enz., mochten ze in een van de uitvoer staan. Dat is echter gemakkelijk genoeg om te doen.




  1. Verzamelmethode:LIMIT-functie in Oracle Database

  2. Uw gegevens sharden met PostgreSQL 11

  3. GROUP BY gebruiken in een query terwijl variabelen worden gebruikt

  4. Voeg bitsgewijze-OF toe in een subquery