Chuyển Excel sang SQL Server
Thả tệp Excel để nhận tập lệnh SQL Server với câu lệnh CREATE TABLE và INSERT. Mỗi cột được gán kiểu, và mọi bản sửa đều được liệt kê kèm hàng và cột.
Đã chuyển đổi 4 hàng, 10 bản sửa, không hàng nào bị từ chối
| Hàng | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for SQL Server.
SET NOCOUNT ON;
BEGIN TRANSACTION;
CREATE TABLE clientes_2024 (
no_cliente nvarchar(8) NOT NULL, -- Nº Cliente
nombre nvarchar(16) NOT NULL,
c_p nvarchar(8) NOT NULL, -- C.P.
alta date NOT NULL,
activo bit NOT NULL,
saldo decimal(6,2)
);
INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
(N'00127', N'Peña Muñoz', N'01234', '2024-02-03', 1, 1234.50),
(N'00128', N'José Ángel', N'09870', '2024-02-15', 0, NULL),
(N'00129', N'Zoë Ortíz', N'44100', '2024-02-29', 1, -12.00),
(N'00130', N'Ñuño Castañeda', N'06700', '2024-03-11', 0, 980.75);
COMMIT TRANSACTION;
Bản sửa
- Tiêu đề nằm ở dòng 4; các dòng phía trên đã bị bỏ qua.
- Dòng 9 ("TOTAL") là dòng tổng, nên đã bị bỏ qua.
- Cột "Nº Cliente" giờ có tên no_cliente để SQL Server đọc được mà không cần dấu ngoặc kép.
- Cột "C.P." giờ có tên c_p để SQL Server đọc được mà không cần dấu ngoặc kép.
- Giữ số 0 ở đầu trong "Nº Cliente": 00127 vẫn là 00127, lưu dưới dạng văn bản.
- Giữ số 0 ở đầu trong "C.P.": 01234 vẫn là 01234, lưu dưới dạng văn bản.
- 15/02/2024 chứng minh ngày trong "Alta" ghi ngày trước tháng, nên 03/02/2024 được đọc là 2024‑02‑03.
- "Activo" chứa các từ có và không (sí, no), lưu dưới dạng boolean.
- Số trong "Saldo" dùng dấu phẩy thập phân: 1.234,50 được đọc là 1234.50.
- N/A trong "Saldo" được đọc là trống (1 trên 4 giá trị).
Tệp được chuyển đổi ngay trên máy tính này và không bao giờ được tải lên.
Mẫu khác:
Từ Excel sang SQL Server, từng cột một
Tệp mẫu ở trên, clientes_2024.xlsx, khi IntoSQL viết cho SQL Server: mỗi cột chứa gì trong tệp, kiểu dữ liệu nhận được và giá trị đầu tiên xuất hiện thế nào trong tập lệnh.
| Trong tệp | Giá trị đầu tiên | Cột | Kiểu SQL Server | Trong tập lệnh |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | nvarchar(8) | N'00127' |
| Nombre | Peña Muñoz | nombre | nvarchar(16) | N'Peña Muñoz' |
| C.P. | 01234 | c_p | nvarchar(8) | N'01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | bit | 1 |
| Saldo | 1.234,50 | saldo | decimal(6,2) | 1234.50 |
Nạp tập lệnh vào SQL Server
Tệp tải xuống là một tệp .sql thông thường. Chạy nó bằng công cụ riêng của SQL Server.
Từ terminal
sqlcmd -S localhost -d mydb -f 65001 -i clientes_2024.sql_server.sql-f 65001 đọc tệp dưới dạng UTF-8, nên dấu và ñ được nạp đúng như đã viết.
Từ công cụ cơ sở dữ liệu
Trong SQL Server Management Studio hoặc Azure Data Studio, mở tệp và chọn Execute.
Những điều cần biết về tệp Excel và SQL Server
IntoSQL đọc gì trong tệp Excel
- Dòng tiêu đề vẫn được tìm thấy dù phía trên có tiêu đề hoặc ghi chú, và dòng tổng ở cuối được bỏ qua.
- Ngày lưu dưới dạng số sê-ri của Excel trở thành ngày thật, ở cả hệ ngày 1900 lẫn 1904.
- Mã có số 0 ở đầu, như 00127, vẫn là văn bản. Khi sổ làm việc có nhiều trang tính, bạn chọn trang tính.
Những điều cần biết về SQL Server
- Văn bản là nvarchar với giá trị N'...', nên dấu được giữ nguyên; văn bản trên 4000 ký tự trở thành nvarchar(max).
- Giá trị có và không trở thành bit, và ngày có độ lệch múi giờ trở thành datetimeoffset.
- Giá trị dài được ghi thành nhiều phần, nên sqlcmd và SQL Server Management Studio chấp nhận tập lệnh.
Cách mỗi loại giá trị được lưu trong SQL Server
| Giá trị | SQL Server |
|---|---|
| Có và không | bit |
| Số nguyên | int |
| Số nguyên lớn | bigint |
| Số thập phân | decimal(p,s) |
| Số dấu phẩy động | float |
| Ngày | date |
| Giờ trong ngày | time |
| Ngày kèm giờ | datetime2 |
| Ngày kèm giờ và độ lệch múi giờ | datetimeoffset |
| Văn bản | nvarchar(n)nvarchar(max) |
Câu hỏi về Excel sang SQL Server
Chưa có câu trả lời ở đây? Hãy viết cho chúng tôi từ trang liên hệ, sẽ có người trả lời. Trang liên hệ
Làm sao để chuyển Excel sang SQL Server?
Thả tệp vào trình chuyển đổi ở đầu trang này. Nó tìm tiêu đề, đọc mọi giá trị và viết tập lệnh SQL Server, kèm danh sách từng bản sửa. Tải tập lệnh xuống và chạy bằng sqlcmd.
Trang tính nào trong sổ làm việc được chuyển đổi?
Trang tính hiển thị đầu tiên. Khi sổ làm việc có nhiều trang tính, tùy chọn Trang tính sẽ xuất hiện để bạn chọn trang khác.
Nó dùng những kiểu SQL Server nào?
Giá trị có/không thành bit, số nguyên thành int, số thập phân thành decimal(p,s), ngày thành date, ngày kèm giờ thành datetime2 và văn bản thành nvarchar(n). Kích thước lấy theo giá trị dài nhất trong mỗi cột.
Số 0 ở đầu có được giữ trong SQL Server không?
Có. Một mã như 00127 vẫn là văn bản, nên SQL Server lưu nó dưới dạng nvarchar(8) và tập lệnh viết nó là N'00127'.
Có thể nạp dữ liệu vào SQL Server mà không cần tập lệnh không?
Không. Hãy tải tập lệnh xuống và chạy bằng sqlcmd. Nạp không cần tập lệnh hoạt động với PostgreSQL, MySQL, MariaDB và SQLite, từ ứng dụng máy tính hoặc dòng lệnh.
Tệp Excel có thể lớn đến đâu?
Trong trình duyệt, sổ làm việc được đọc toàn bộ, nên giới hạn là bộ nhớ trình duyệt cấp cho trang này. Ứng dụng máy tính và dòng lệnh nhận sổ làm việc ở mọi kích thước; trên laptop Apple M4, dòng lệnh chuyển đổi sổ làm việc 117 MB với một triệu hàng trong khoảng một giây.