Saya memiliki lembar kerja excel besar yang ingin saya tambahkan ke database saya.
Dapatkah saya membuat skrip penyisipan SQL dari lembar kerja excel ini?
Saya memiliki lembar kerja excel besar yang ingin saya tambahkan ke database saya.
Dapatkah saya membuat skrip penyisipan SQL dari lembar kerja excel ini?
Jawaban:
Saya pikir mengimpor menggunakan salah satu metode yang disebutkan sangat ideal jika itu benar-benar file besar, tetapi Anda dapat menggunakan Excel untuk membuat pernyataan penyisipan:
="INSERT INTO table_name VALUES('"&A1&"','"&B1&"','"&C1&"')"
Di MS SQL Anda dapat menggunakan:
SET NOCOUNT ON
Untuk tidak menampilkan semua komentar '1 baris terpengaruh'. Dan jika Anda melakukan banyak baris dan kesalahan terjadi, sesekali tempatkan GO di antara pernyataan
=CONCATENATE()
tetapi menggunakan &
tanda itu mengarah pada keterbacaan yang jauh lebih baik!
&
ketika saya menemukan batas parameter CONCATENATE()
beberapa waktu lalu, itu bukan masalah umum sekarang karena batasnya adalah 255 parameter, tetapi saya tidak pernah berpikir untuk kembali.
Ada alat praktis yang menghemat banyak waktu di
http://tools.perceptus.ca/text-wiz.php?ops=7
Anda hanya perlu memberi makan di nama tabel, nama field dan data - tab dipisahkan dan tekan Go!
Anda dapat membuat tabel yang sesuai melalui antarmuka studio manajemen dan memasukkan data ke dalam tabel seperti yang ditunjukkan di bawah ini. Mungkin perlu beberapa waktu tergantung pada jumlah data, tetapi ini sangat berguna.
Anda dapat menggunakan pernyataan excel berikut:
="INSERT INTO table_name(`"&$A$1&"`,`"&$B$1&"`,`"&$C$1&"`, `"&$D$1&"`) VALUES('"&SUBSTITUTE(A2, "'", "\'")&"','"&SUBSTITUTE(B2, "'", "\'")&"','"&SUBSTITUTE(C2, "'", "\'")&"', "&D2&");"
Ini lebih baik daripada jawaban Hart CO karena memperhitungkan nama kolom dan menghilangkan kesalahan kompilasi karena tanda kutip di kolom. Kolom terakhir adalah contoh kolom nilai numerik, tanpa tanda kutip.
Bergantung pada database, Anda dapat mengekspor ke CSV lalu menggunakan metode impor.
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
Ini alat lain yang bekerja dengan sangat baik ...
http://www.convertcsv.com/csv-to-sql.htm
Ini dapat mengambil nilai yang dipisahkan tab dan menghasilkan skrip INSERT. Cukup salin dan tempel dan dalam opsi bawah langkah 2 centang kotak "Baris pertama adalah nama kolom"
Kemudian gulir ke bawah dan di bawah langkah 3, masukkan nama tabel Anda di kotak "Schema.Table or View Name:"
Perhatikan juga kotak centang hapus dan buat tabel, dan pastikan Anda memeriksa skrip yang dibuat sebelum menjalankannya.
Ini adalah cara tercepat dan paling andal yang pernah saya temukan.
Gunakan ConvertFrom-ExcelToSQLInsert
dari ImportExcel di PowerShell Gallery
NAME
ConvertFrom-ExcelToSQLInsert
SYNTAX
ConvertFrom-ExcelToSQLInsert [-TableName] <Object> [-Path] <Object>
[[-WorkSheetname] <Object>] [[-HeaderRow] <int>]
[[-Header] <string[]>] [-NoHeader] [-DataOnly] [<CommonParameters>]
PARAMETERS
-DataOnly
-Header <string[]>
-HeaderRow <int>
-NoHeader
-Path <Object>
-TableName <Object>
-WorkSheetname <Object>
<CommonParameters>
This cmdlet supports the common parameters: Verbose, Debug,
ErrorAction, ErrorVariable, WarningAction, WarningVariable,
OutBuffer, PipelineVariable, and OutVariable. For more information, see
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216).
ALIASES
None
REMARKS
None
Berikut ini tautan ke Automator online untuk mengonversi file CSV ke pernyataan SQL Insert Into:
Kueri ini saya buat untuk memasukkan data file Excel ke dalam database. Dalam id dan harga ini adalah nilai numerik dan kolom tanggal juga. Kueri ini merangkum semua jenis yang saya butuhkan. Mungkin berguna juga bagi Anda
="insert into product (product_id,name,date,price) values("&A1&",'" &B1& "','" &C1& "'," &D1& ");"
Id Name Date price
7 Product 7 2017-01-05 15:28:37 200
8 Product 8 2017-01-05 15:28:37 40
9 Product 9 2017-01-05 15:32:31 500
10 Product 10 2017-01-05 15:32:31 30
11 Product 11 2017-01-05 15:32:31 99
12 Product 12 2017-01-05 15:32:31 25
Anda dapat menggunakan Metode C # di bawah ini untuk menghasilkan skrip penyisipan menggunakan lembar Excel hanya Anda perlu mengimpor Paket OfficeOpenXml dari NuGet Package Manager sebelum menjalankan metode ini.
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();}
Saya harus sering membuat skrip SQL dan menambahkannya ke kontrol sumber dan mengirimkannya ke DBA. Saya menggunakan Aplikasi ExcelIntoSQL ini dari windows store https://www.microsoft.com/store/apps/9NH0W51XXQRM Ini membuat skrip lengkap dengan "CREATE TABLE" dan INSERTS.
Saya memiliki cara yang dapat diandalkan untuk menghasilkan sisipan SQL, dan Anda dapat memodifikasi parameter parsial dalam pemrosesan. Ini sangat membantu saya dalam pekerjaan saya, misalnya, menyalin satu ratus data ke database dengan struktur yang tidak kompatibel dan jumlah bidang. IntellIJ DataGrip , alat canggih yang saya gunakan. DG dapat dengan mudah menerima data dari kantor WPS atau MS Excel dengan kolom atau baris. setelah menyalin, DG dapat mengekspor data sebagai sisipan SQL .
insert
&update
di sini ☺