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

Metody eksportu i importu tabel bazy danych SQL Server

Pracując jako administrator lub programista bazy danych SQL Server, nie możesz żyć w odizolowanym świecie SQL Server bez komunikacji z innymi źródłami danych. Na przykład rzadko kiedy nie zostaniesz poproszony o zaimportowanie danych z pliku Excel, Access lub CSV do tabeli SQL Server. Lub odwrotnie, wyeksportuj jedną z tabel bazy danych SQL Server do pliku zewnętrznego, aby można było użyć tej tabeli w innym silniku bazy danych lub przeanalizować ją zewnętrznie przez odpowiedni zespół.

SQL Server udostępnia nam szereg metod, których można użyć do eksportowania istniejącej tabeli bazy danych SQL Server do pliku Excel lub pliku tekstowego oraz importowania danych z zewnętrznego źródła danych do nowej lub istniejącej tabeli bazy danych SQL Server. W tym artykule stopniowo omówimy wszystkie te metody.

Narzędzie BCP

Narzędzie Bulk Copy Program, znane również jako BCP, to narzędzie wiersza poleceń, którego można używać do importowania dużej liczby wierszy z pliku danych systemu operacyjnego do tabeli bazy danych SQL Server lub eksportowania istniejącej tabeli bazy danych SQL Server do działającej plik danych systemowych.

Składnia narzędzia BCP zawiera wiele różnych opcji. Oto najczęściej używane:

  • Nazwa tabeli lub widoku bazy danych SQL Server – będzie to działać jako źródło danych w przypadku procesu eksportu danych i jako miejsce docelowe w przypadku procesu importu danych.
  • Kierunek danych, gdzie IN wskazuje import danych i OUT wskazuje eksport danych.
  • Nazwa lokalnego pliku danych, który będzie działał jako źródło w przypadku procesu importu danych i jako miejsce docelowe w przypadku procesu eksportu danych.
  • -S serwer\instancja – służy do określenia nazwy instancji SQL Server.
  • –d – służy do określenia bazy danych zawierającej tabelę źródłową lub docelową.
  • -T – służy do określenia, że ​​uwierzytelnianie Windows będzie używane do łączenia się z serwerem SQL.
  • -U nazwa użytkownika i -P hasło – określają nazwę użytkownika i hasło używane do połączenia z instancją SQL Server.
  • Narzędzie Bulk Copy Program, znane również jako BCP, to narzędzie wiersza poleceń, którego można używać do importowania dużej liczby wierszy z pliku danych systemu operacyjnego do tabeli bazy danych SQL Server lub eksportowania istniejącej tabeli bazy danych SQL Server do pliku danych systemu operacyjnego. – są one używane do określenia formatu źródłowego lub docelowego pliku danych oraz ograniczników użytych w tym pliku danych.

Na przykład poniższe polecenie BCP służy do eksportowania zawartość tabeli bazy danych Employee_Main zbiorczo do pliku CSV, w następujący sposób:

bcp AdventureWorks2016CTP3.dbo.Employee_Main out C:\Test\Employees.csv -S MININT-QQBE87A -T -c -t , -r \n

Te dane zostaną szybko skopiowane do pliku CSV, jak pokazano w poniższym wyniku:

Aby zaimportować zawartość pliku CSV do tabeli bazy danych, można użyć następującego polecenia BCP, aby szybko to osiągnąć zbiorczo:

bcp AdventureWorks.dbo.Employee_Main w C:\Test\Employees.csv -S MININT-QQBE87A -T -c -t , -r \n

Dane zostaną wstawione do tabeli bazy danych, jak pokazano w poniższym wyniku:

Poświęcając kilka minut na przygotowanie tych poleceń z odpowiednimi opcjami, możesz łatwo użyć narzędzia BCP do importowania danych z lub eksportowania ich do plików tekstowych.

WSTAW ZBIORCZO

BULK INSERT T-SQL oświadczenie działa podobnie do BCP IN i służy do importowania danych z pliku danych, który jest dostępny dla usługi SQL Server do tabeli bazy danych SQL Server – wszystko to odbywa się bezpośrednio w SQL Server. W przeciwieństwie do polecenia BCP IN, instrukcja BULK INSERT może być zgrupowana z innymi operacjami w pojedynczej transakcji SQL Server, która działa pod Twoją kontrolą.

Poniższego polecenia BULK INSERT T-SQL można użyć do importowania danych z pliku CSV do istniejącej tabeli bazy danych, określając zarówno ograniczniki kolumn, jak i wierszy, jak pokazano poniżej:

BULK INSERT AdventureWorks.dbo.Employee_Main
FROM 'C:\Test\Employees.csv'
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
);
GO

OPENROWSET

Funkcja OPENROWSET służy do łączenia się ze źródłami danych przy użyciu dostawcy połączeń OLEDB, a następnie używania zapytania T-SQL określonego w celu pobierania danych z tego źródła danych. Kluczowe zalety funkcji OPENROWSET w porównaniu z metodami BCP i BULK INSERT są następujące:

  • możesz filtrować dane pobrane przez instrukcję OPENROWSET za pomocą klauzuli WHERE
  • możesz go użyć w instrukcji SELECT do odczytania danych ze źródła danych – nie tylko z instrukcją INSERT

Aby użyć instrukcji OPENROWSET, musisz włączyć zapytania rozproszone ad hoc opcję konfiguracji systemu najpierw za pomocą poniższego skryptu:

sp_configure 'show advanced options', 1;  
RECONFIGURE;
GO 
sp_configure 'Ad Hoc Distributed Queries', 1;  
RECONFIGURE;  
GO

Po włączeniu opcji konfiguracji systemu zapytań rozproszonych ad hoc można użyć funkcji OPENROWSET, aby zaimportować dane do tabel bazy danych programu SQL Server z plików CSV z wcześniej zdefiniowanym formatem danych, jak pokazano w poniższym zapytaniu T-SQL:

INSERT INTO [AdventureWorks].[dbo].[Employee_Main]
([EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber])
SELECT [EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber] 
FROM OPENROWSET(
   BULK 'C:\Test\Employees.csv',
      FORMATFILE = 'C:\Test\Fmt.xml'
) AS rows;

Serwer połączony

Serwer połączony z programem SQL Server to obiekt serwera skonfigurowany tak, aby umożliwić aparatowi bazy danych programu SQL Server łączenie się z różnymi typami źródeł danych OLE DB poza wystąpieniem programu SQL Server. Połączony serwer można łatwo utworzyć za pomocą SQL Server Management Studio lub poleceń T-SQL, jak pokazano poniżej:

Po utworzeniu połączonego serwera można łatwo użyć do uzyskania dostępu do zdalnego źródła danych i importowania odpowiednich danych do tabeli bazy danych SQL Server, jak pokazano w zapytaniu T-SQL poniżej:

INSERT INTO [AdventureWorks].[dbo].[Employee_Main] 
([EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber],[EMP_Address])
SELECT [EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber],[EMP_Address] FROM TEST...Employee_Main$

Kreator eksportu/importu serwera SQL

Kreator eksportu i importu SQL Server zapewnia nam prosty interfejs do tworzenia pakietów SQL Server Integration Service, których można używać od razu lub zapisać do późniejszego wykorzystania. Te pakiety umożliwiają importowanie danych i eksportowanie ich do wielu różnych źródeł danych, począwszy od prostych plików płaskich, a skończywszy na bardziej złożonych silnikach baz danych.

Kreatora eksportu i importu można użyć na przykład do importowania danych ze źródła danych programu Excel do istniejącej tabeli bazy danych. Poniższe kroki opisują ten proces:

  1. W Eksploratorze obiektów programu SQL Server Management Studio kliknij prawym przyciskiem myszy bazę danych AdventureWorks zawierającą tabelę, w której będziesz zapisywać dane. Następnie wybierz Importuj dane opcja z Zadań podmenu:
  2. Otworzy się Kreator importu i eksportu SQL Server. W Wybierz źródło danych w oknie, określ typ źródła danych. W tym konkretnym przykładzie wybierzemy Microsoft Excel i pełną ścieżkę do żądanego pliku Excel. Po określeniu go kliknij Dalej przycisk:
  3. W Wybierz miejsce docelowe okno, zostaniesz poproszony o określenie typu miejsca docelowego, do którego będą zapisywane dane źródłowe. W naszym przykładzie jest to baza danych SQL Server. Zostaniesz również poproszony o podanie nazwy serwera, poświadczeń oraz nazwy bazy danych, w której znajduje się tabela docelowa. Po podaniu wszystkich tych informacji kliknij Dalej kontynuować:
  4. W Określ kopię tabeli lub zapytanie w oknie, będziesz mieć możliwość skopiowania wszystkich danych ze źródła do istniejącej lub nowej tabeli lub napisania niestandardowego zapytania w celu pobrania określonego zakresu danych. Po podjęciu decyzji kliknij przycisk Dalej przycisk:
  5. W Wybierz tabele źródłowe i widoki określ arkusz lub tabelę źródłową ze źródła danych oraz tabelę docelową, do której zostaną zapisane dane źródłowe. Będziesz mieć możliwość podglądu źródła, sprawdzenia mapowania kolumn między tabelą źródłową i docelową oraz określenia, czy dane powinny zostać dołączone do istniejącej tabeli, czy do nowo wygenerowanej tabeli. Kliknij Dalej przycisk, aby kontynuować:
  6. W Pakietu Zapisz i uruchom W oknie istnieje możliwość zapisania pakietu SSIS utworzonego w Kreatorze importu i eksportu w celu natychmiastowego uruchomienia lub zapisania w celu zaplanowania lub późniejszego uruchomienia. Kliknij Dalej przycisk, aby kontynuować:
  7. W Ukończ kreatora pojawi się podsumowanie wybranych opcji i wprowadzonych ustawień. Kliknij Zakończ przycisk, aby rozpocząć kopiowanie danych:
  8. Po zakończeniu procesu kopiowania kreator wyświetli liczbę rekordów skopiowanych do każdej tabeli. Jeśli nie ma błędów, możesz kliknąć Zamknij przycisk zamykający okno:W poprzednim przykładzie widać, że kreatora importu i eksportu można łatwo użyć do kopiowania danych między różnymi typami źródeł danych i miejsc docelowych, bez uwzględniania relacji między tabelami. Jeśli tabela zawiera ograniczenie klucza obcego, które odwołuje się do jednej z kolumn tabeli nadrzędnej, należy ręcznie zarządzać kolejnością procesu kopiowania danych. Ponadto, aby rozpocząć nowy proces importowania danych, musisz zamknąć kreatora i otworzyć go ponownie.

Pompa danych dbForge

dbForge Data Pump to narzędzie innej firmy dołączone do programu SQL Server Management Studio jako dodatek. Może być używany do łatwej migracji danych między SQL Server a różnymi zewnętrznymi źródłami danych. Umożliwia importowanie i eksportowanie z ponad 10 powszechnie używanych formatów danych (tekst, MS Excel, XML, CSV, JSON itp.) Z wieloma zaawansowanymi opcjami i szablonami, które można wykorzystać w powtarzających się scenariuszach.

Po pobraniu dbForge Data Pump ze strony pobierania Devart, musisz zainstalować ją na komputerze jako dodatek do narzędzia SSMS, jak pokazano poniżej:

Eksport danych

dbForge Data Pump może być używany w ramach SSMS do eksportowania danych z tabeli bazy danych SQL Server lub przeglądania danych w 13 obsługiwanych formatach, w tym HTML, Text, MS Excel, MS Excel 2007, MS Access, RTF, PDF, XML, CSV, ODBC, DBF (Foxpro, dBase III, dBase IV, dBase 7), SQL i JSON.

Aby wyeksportować dane z określonej tabeli SQL Server, wykonaj następujące czynności:

  1. Połącz się z instancją SQL Server przez SSMS. W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych zawierającą tabelę źródłową i wybierz Eksportuj dane z pompy danych podmenu:
  2. W Formacie eksportu wybrać format pliku, do którego zostaną wyeksportowane dane tabeli źródłowej, lub wczytać wcześniej zapisany szablon. W naszym przykładzie wybierzemy MS Excel 2007. Kliknij Dalej przycisk, aby kontynuować:
  3. W oknie Źródło przejrzyj szczegóły połączenia i wybierz tabele zawierające dane źródłowe do wyeksportowania. Kliknij Dalej kontynuować:
  4. W Opcjach w oknie, sprawdź i ustaw różne konfigurowalne opcje dla siatki tabeli eksportowanych danych. Następnie kliknij Dalej kontynuować:
  5. W Formatach danych okno, pod Kolumnami wybierz kolumny, które zostaną wyeksportowane i przejrzyj ich typy danych:Ponadto w Formatach skonfiguruj format różnych typów danych dla wybranych kolumn. Kliknij Dalej przycisk, aby kontynuować:
  6. W Ustawieniach drukowania strony w oknie, możesz ustawić różne opcje dla stron eksportowanego pliku do celów drukowania. Kliknij Dalej kontynuować:
  7. W wyeksportowanych wierszach określ zakres wierszy do wyeksportowania z tabeli źródłowej lub wybierz eksport wszystkich wierszy tabeli. Kliknij Dalej kontynuować:
  8. Obsługa błędów Window udostępnia szereg opcji, które można wykorzystać do określenia sposobu przetwarzania błędów, jeśli wystąpią i miejsca rejestrowania wyników wykonania. Kliknij Zapisz Szablon aby zapisać ustawienia jako szablon do wykorzystania w przyszłości, lub naciśnij Eksportuj przycisk, aby rozpocząć proces eksportu danych, jak pokazano poniżej:Podczas procesu eksportu danych Data Pump będzie wyświetlać komunikaty informacyjne wyświetlające liczbę rekordów skopiowanych z aktualna tabela, jak pokazano poniżej:Po pomyślnym zakończeniu procesu eksportu danych zostanie wyświetlone podsumowanie tego procesu. Zostaną udostępnione opcje otwarcia wygenerowanego pliku lub folderu zawierającego i wyeksportowania większej ilości danych z tej samej strony bez konieczności zamykania i ponownego otwierania narzędzia:

Import danych

dbForge Data Pump może być używany w ramach SSMS do importowania danych do tabeli bazy danych SQL Server. Obsługiwanych jest 9 powszechnie używanych formatów danych:Tekst, MS Excel, MS Excel 2007, MS Access, XML, CSV, ODBC, DBF (Foxpro, dBase III, dBase IV, dBase 7) i JSON.

Aby zaimportować dane z arkusza Excel do określonej tabeli SQL Server, wykonaj następujące czynności:

  1. Połącz się z instancją SQL Server za pomocą SSMS. W Eksploratorze obiektów kliknij prawym przyciskiem myszy bazę danych zawierającą docelową tabelę bazy danych i wybierz Importuj Dane z Pompy danych podmenu:
  2. W Pliku źródłowym wybierz format pliku źródłowego lub po prostu załaduj wcześniej zapisany szablon, aby przeprowadzić proces importu. W naszym przykładzie użyjemy Microsoft Excel 2007 i klikniemy Przeglądaj przycisk, aby zlokalizować arkusz Excel. Kliknij Dalej przycisk, aby kontynuować:
  3. W miejscu docelowym przejrzyj informacje o połączeniu i określ, czy dane mają zostać zaimportowane do nowej tabeli, czy do istniejącej tabeli z podanej listy. Kliknij Dalej kontynuować:
  4. W Opcjach W oknie można ustawić różne opcje określające położenie nagłówka i danych w pliku źródłowym, z możliwością podglądu danych pliku źródłowego przed importem. Kliknij Dalej kontynuować:
  5. W Formatach danych okna, możesz dostosować format typu danych dla różnych kolumn tekstowych w pliku źródłowym przed zaimportowaniem go do tabeli bazy danych. Kliknij Dalej kontynuować:
  6. W Mapowaniu w oknie można mapować kolumny z pliku źródłowego do docelowej tabeli bazy danych, z możliwością podglądu danych po dokonaniu zmiany. Kliknij Dalej kontynuować:
  7. W trybach W oknie można określić tryb importu danych, np. dołączyć dane do istniejących danych w tabeli docelowej i wykonać zbiorcze wstawienie lub zaimportować dane za pomocą pojedynczej transakcji. Kliknij Dalej kontynuować:
  8. W Wyjściu w oknie, możesz określić, czy chcesz wygenerować lub zapisać skrypt importu danych, czy też natychmiast rozpocząć proces importu danych. Kliknij Dalej kontynuować:
  9. Obsługa błędów window udostępnia szereg opcji, których można użyć do określenia, jak zachować się w przypadku wystąpienia błędów i gdzie rejestrować wyniki wykonania. Kliknij Zapisz szablon aby zapisać ustawienia jako szablon do wykorzystania w przyszłości lub Importuj przycisk, aby rozpocząć proces importu danych, jak pokazano poniżej:
  10. Po pomyślnym zakończeniu procesu importowania Kreator wyświetli podsumowanie liczby zaimportowanych rekordów. Będziesz mieć możliwość przeglądania pliku dziennika błędów w przypadku wystąpienia błędów oraz importowania innych plików z tego samego okna bez konieczności zamykania i ponownego otwierania narzędzia:

Z poprzedniego przykładu jasno wynika, że ​​narzędzie dbForge Data Pump zapewnia nam możliwość importowania i eksportowania danych do iz różnych formatów plików danych. Dedykowany do tego kreator jest prosty w konfiguracji, bogaty w różne opcje i nie wymaga prac programistycznych. Zasługuje na wypróbowanie!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy używasz odpowiednich narzędzi do monitorowania wydajności bazy danych?

  2. Po usunięciu kaskady dla tabeli samoodnoszącej się

  3. Sprawdzanie kopii zapasowej serwera SQL

  4. Jak przechowywać obraz w kolumnie tabel bazy danych SQL Server

  5. Jak mogę pogrupować według kolumny daty i godziny bez uwzględniania czasu?