Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Eksportuj dane serwera SQL do pliku CSV

Co jest warte, jeśli chcesz tylko wziąć zapytanie i zrzucić gdzieś zawartość, wygląda na to, że wykonujesz trochę więcej pracy, niż musisz. Złożoność może stanowić dodatkowe wyzwanie podczas debugowania.

Naprawdę prosty przykład odczytywania zapytania i kierowania danych wyjściowych do pliku może wyglądać tak:

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();

Chociaż może nie wyglądać na znacznie krótszą niż podany przez Ciebie kod, myślę, że jest prostszy i łatwiejszy do debugowania po wyjęciu z pudełka. Nie testowałem tego, więc nie mogę powiedzieć na pewno, że działa, chociaż myślę, że jest całkiem blisko.

Kolejna rzecz, o której warto wspomnieć… żadne z tych danych nie jest prawdziwym plikiem CSV. Musisz się upewnić, że obsługujesz osadzone przecinki, znaki zwrotne itp., jeśli znajdują się one w którymkolwiek z danych wyjściowych. Jest to jednak dość łatwe.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Synchronizacja danych między dwiema różnymi bazami danych

  2. FLOOR() Przykłady w SQL Server

  3. Kopia zapasowa SQL Server 2017 -3

  4. SQL Server 2014:natywne szyfrowanie kopii zapasowych

  5. Jak programowo ustawić parametry połączenia dla Entity-Framework Code-First?