Myślę, że importowanie przy użyciu jednej z wymienionych metod jest idealne, jeśli naprawdę jest to duży plik, ale możesz użyć programu Excel do tworzenia instrukcji wstawiania:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
W MS SQL możesz użyć:
SET NOCOUNT ON
Zrezygnować z wyświetlania wszystkich komentarzy z „1 wierszem, na które ma to wpływ” A jeśli robisz wiele wierszy i pojawia się błąd, od czasu do czasu wstaw GO między instrukcjami
Używałem, =CONCATENATE()ale używanie &znaku prowadzi do znacznie lepszej czytelności!
mastazi
1
@mastazi Agreed! Przerzuciłem się na, &gdy wpadłem na limit parametrów CONCATENATE()jakiś czas temu, to nie jest powszechny problem teraz, gdy limit wynosi 255 parametrów, ale nigdy nie myślę o przywróceniu.
Hart CO
1
CONCATENATE () to droga do zrobienia. Wystarczy kliknąć ikonę fx na pasku formuły, aby zobaczyć, co wprowadziłeś. Jest znacznie czystszy niż zwykłe używanie i podpisywanie. Oczywiście używanie znaku & jest fajne, ale czasami, gdy masz podwójne cudzysłowy lub pojedynczy cudzysłów, będziesz liczyć na zawsze, czego brakuje.
ian0411
1
Nie działa, gdy w komórkach znajdują się cudzysłowy. Sprawdź moją odpowiedź na poprawioną wersję.
Simon Baars,
2
@PreshanPradeepa Możesz użyć tej samej składni, SQL Server nie dba o to, czy liczba całkowita jest w cudzysłowie, o ile jest to poprawna liczba całkowita.
Hart CO
29
Jest poręczne narzędzie, które oszczędza dużo czasu w
Nie publikuj swoich poufnych danych w Internecie. Nie masz możliwości dowiedzenia się, co dzieje się z danymi, które przesyłasz do aplikacji internetowej. Niektóre z tych narzędzi przechowują Twoje dane i udostępniają je publicznie
GabiM,
28
Możesz utworzyć odpowiednią tabelę za pośrednictwem interfejsu studia zarządzania i wstawić dane do tabeli, tak jak pokazano poniżej. Może to zająć trochę czasu w zależności od ilości danych, ale jest bardzo przydatne.
Poręczny. Widzę, że w przypadku kolumny IDENTITY bufor kopiowania musi mieć kolumnę, mimo że dane w niej będą ignorowane, ponieważ wartości są generowane automatycznie podczas wstawiania wierszy.
fortboise
Możesz ustawić swoją kolumnę IDENTITY jako ostatnią na liście kolumn, a wtedy nie będzie konieczne posiadanie dodatkowej kolumny.
Andrey Morozov
1
jeśli nie określisz wartości TOŻSAMOŚCI w arkuszu programu Excel; można zmienić i ponownie uruchomić skrypt sql edycji 200 pierwszych wierszy, usuwając kolumnę IDENTITY. Więc kiedy kopiujesz i wklejasz wartości bez TOŻSAMOŚCI; ta metoda zadziała.
aozan88
Jest to zepsute dla pól dat i godzin w programie Excel dla każdego, kto napotka problem. Z jakiegoś powodu dane typu data-godzina są konwertowane na dane „binarne” po stronie SQL.
Kevin Vasko
1
@condiosluzverde Radziłbym zamieścić własną odpowiedź. W przypadku edycji tej odpowiedzi Twoje zmiany prawdopodobnie zostaną odrzucone przez moderatorów społeczności.
Andrey Morozov
16
Możesz użyć następującej instrukcji programu Excel:
="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2,"'","\'")&"','"&SUBSTITUTE(B2,"'","\'")&"','"&SUBSTITUTE(C2,"'","\'")&"', "&D2&");"
Poprawia to odpowiedź Harta CO, ponieważ bierze pod uwagę nazwy kolumn i usuwa błędy kompilacji spowodowane cudzysłowami w kolumnie. Ostatnia kolumna jest przykładem kolumny z wartościami liczbowymi, bez cudzysłowów.
MS SQL, możesz użyć kreatora importu SSMS, aby zaimportować plik Excel.
Hart CO
1
Aby dodać szczegóły do @HartCO - Aby przejść do Kreatora importu SSMS, kliknij prawym przyciskiem myszy bazę danych, najedź kursorem na zadania, kliknij „Importuj dane ...” u dołu menu kontekstowego. Postępuj zgodnie z instrukcjami kreatora.
qxotk
2
Możesz użyć VB, aby napisać coś, co wyprowadzi do pliku wiersz po wierszu, dodając odpowiednie instrukcje sql wokół danych. Robiłem to już wcześniej.
Może przyjmować wartości rozdzielone tabulatorami i generować skrypt INSERT. Po prostu skopiuj i wklej i w opcjach pod krokiem 2 zaznacz pole „Pierwszy wiersz to nazwy kolumn”
Następnie przewiń w dół i w kroku 3 wprowadź nazwę tabeli w polu „Schemat.Tabela lub nazwa widoku:”
Zwróć także uwagę na pola wyboru usuń i utwórz tabelę, i upewnij się, że sprawdziłeś wygenerowany skrypt przed jego uruchomieniem.
To najszybszy i najbardziej niezawodny sposób, jaki znalazłem.
To zapytanie, które wygenerowałem, aby wstawić dane pliku Excel do bazy danych. W tym identyfikatorze i cenie są również wartości liczbowe i pole daty. To zapytanie podsumowało wszystkie typy, których potrzebuję. Może być przydatne również dla Ciebie
="insert into product (product_id,name,date,price) values("&A1&",'"&B1&"','"&C1&"',"&D1&");"
Id Name Date price
7 Product 72017-01-0515:28:372008 Product 82017-01-0515:28:37409 Product 92017-01-0515:32:3150010 Product 102017-01-0515:32:313011 Product 112017-01-0515:32:319912 Product 122017-01-0515:32:3125
Możesz użyć poniższej metody C #, aby wygenerować skrypty wstawiania za pomocą arkusza programu Excel, wystarczy zaimportować pakiet OfficeOpenXml z Menedżera pakietów NuGet przed wykonaniem metody.
public string GenerateSQLInsertScripts(){
var outputQuery = new StringBuilder();
var tableName ="Your Table Name";if(file!=null){
var filePath =@"D:\FileName.xsls";using(OfficeOpenXml.ExcelPackage xlPackage = new OfficeOpenXml.ExcelPackage(new FileInfo(filePath))){
var myWorksheet = xlPackage.Workbook.Worksheets.First();//select the first sheet here
var totalRows = myWorksheet.Dimension.End.Row;
var totalColumns = myWorksheet.Dimension.End.Column;
var columns = new StringBuilder();//this is your columns
var columnRows = myWorksheet.Cells[1,1,1, totalColumns].Select(c => c.Value ==null? string.Empty : c.Value.ToString());
columns.Append("INSERT INTO["+ tableName +"] (");
foreach (var colrow in columnRows){
columns.Append("[");
columns.Append(colrow);
columns.Append("]");
columns.Append(",");}
columns.Length--;
columns.Append(") VALUES (");for(int rowNum =2; rowNum <= totalRows; rowNum++)//selet starting row here
{
var dataRows = myWorksheet.Cells[rowNum,1, rowNum, totalColumns].Select(c => c.Value ==null? string.Empty : c.Value.ToString());
var finalQuery = new StringBuilder();
finalQuery.Append(columns);
foreach (var dataRow in dataRows){
finalQuery.Append("'");
finalQuery.Append(dataRow);
finalQuery.Append("'");
finalQuery.Append(",");}
finalQuery.Length--;
finalQuery.Append(");");
outputQuery.Append(finalQuery);}}}return outputQuery.ToString();}
Musiałem często tworzyć skrypty SQL, dodawać je do kontroli źródła i wysyłać do DBA. Użyłem tej aplikacji ExcelIntoSQL ze sklepu Windows https://www.microsoft.com/store/apps/9NH0W51XXQRM
Tworzy kompletny skrypt z "CREATE TABLE" i INSERTS.
Mam niezawodny sposób na bezproblemowe generowanie wstawek SQL, a przy przetwarzaniu można modyfikować częściowe parametry, co bardzo mi pomaga w pracy np. Kopiowanie setek danych do bazy danych o niekompatybilnej strukturze i liczbie pól.
IntellIJ DataGrip , potężne narzędzie, którego używam. DG może bez problemu otrzymywać dane z biura WPS lub MS Excel według kolumny lub wiersza. po skopiowaniu DG może eksportować dane jako wstawki SQL .
insert
iupdate
tutaj ☺Odpowiedzi:
Myślę, że importowanie przy użyciu jednej z wymienionych metod jest idealne, jeśli naprawdę jest to duży plik, ale możesz użyć programu Excel do tworzenia instrukcji wstawiania:
W MS SQL możesz użyć:
Zrezygnować z wyświetlania wszystkich komentarzy z „1 wierszem, na które ma to wpływ” A jeśli robisz wiele wierszy i pojawia się błąd, od czasu do czasu wstaw GO między instrukcjami
źródło
=CONCATENATE()
ale używanie&
znaku prowadzi do znacznie lepszej czytelności!&
gdy wpadłem na limit parametrówCONCATENATE()
jakiś czas temu, to nie jest powszechny problem teraz, gdy limit wynosi 255 parametrów, ale nigdy nie myślę o przywróceniu.Jest poręczne narzędzie, które oszczędza dużo czasu w
http://tools.perceptus.ca/text-wiz.php?ops=7
Wystarczy podać nazwę tabeli, nazwy pól i dane - oddzielone tabulatorami i nacisnąć Go!
źródło
Możesz utworzyć odpowiednią tabelę za pośrednictwem interfejsu studia zarządzania i wstawić dane do tabeli, tak jak pokazano poniżej. Może to zająć trochę czasu w zależności od ilości danych, ale jest bardzo przydatne.
źródło
Możesz użyć następującej instrukcji programu Excel:
Poprawia to odpowiedź Harta CO, ponieważ bierze pod uwagę nazwy kolumn i usuwa błędy kompilacji spowodowane cudzysłowami w kolumnie. Ostatnia kolumna jest przykładem kolumny z wartościami liczbowymi, bez cudzysłowów.
źródło
W zależności od bazy danych możesz wyeksportować do CSV, a następnie skorzystać z metody importu.
MySQL - http://dev.mysql.com/doc/refman/5.1/en/load-data.html
PostgreSQL - http://www.postgresql.org/docs/8.2/static/sql-copy.html
źródło
Możesz użyć VB, aby napisać coś, co wyprowadzi do pliku wiersz po wierszu, dodając odpowiednie instrukcje sql wokół danych. Robiłem to już wcześniej.
źródło
Oto kolejne narzędzie, które działa bardzo dobrze ...
http://www.convertcsv.com/csv-to-sql.htm
Może przyjmować wartości rozdzielone tabulatorami i generować skrypt INSERT. Po prostu skopiuj i wklej i w opcjach pod krokiem 2 zaznacz pole „Pierwszy wiersz to nazwy kolumn”
Następnie przewiń w dół i w kroku 3 wprowadź nazwę tabeli w polu „Schemat.Tabela lub nazwa widoku:”
Zwróć także uwagę na pola wyboru usuń i utwórz tabelę, i upewnij się, że sprawdziłeś wygenerowany skrypt przed jego uruchomieniem.
To najszybszy i najbardziej niezawodny sposób, jaki znalazłem.
źródło
Użyj
ConvertFrom-ExcelToSQLInsert
z ImportExcel w galerii programu PowerShellźródło
Oto link do automatu online do konwersji plików CSV do instrukcji SQL Insert Into:
CSV-to-SQL
źródło
To zapytanie, które wygenerowałem, aby wstawić dane pliku Excel do bazy danych. W tym identyfikatorze i cenie są również wartości liczbowe i pole daty. To zapytanie podsumowało wszystkie typy, których potrzebuję. Może być przydatne również dla Ciebie
źródło
Możesz użyć poniższej metody C #, aby wygenerować skrypty wstawiania za pomocą arkusza programu Excel, wystarczy zaimportować pakiet OfficeOpenXml z Menedżera pakietów NuGet przed wykonaniem metody.
źródło
Musiałem często tworzyć skrypty SQL, dodawać je do kontroli źródła i wysyłać do DBA. Użyłem tej aplikacji ExcelIntoSQL ze sklepu Windows https://www.microsoft.com/store/apps/9NH0W51XXQRM Tworzy kompletny skrypt z "CREATE TABLE" i INSERTS.
źródło
Mam niezawodny sposób na bezproblemowe generowanie wstawek SQL, a przy przetwarzaniu można modyfikować częściowe parametry, co bardzo mi pomaga w pracy np. Kopiowanie setek danych do bazy danych o niekompatybilnej strukturze i liczbie pól. IntellIJ DataGrip , potężne narzędzie, którego używam. DG może bez problemu otrzymywać dane z biura WPS lub MS Excel według kolumny lub wiersza. po skopiowaniu DG może eksportować dane jako wstawki SQL .
źródło