Cập nhật hàng loạt SQL từ Excel
Chèn, cập nhật hoặc xóa dữ liệu trong SQL Server từ Excel Qua. Jeremy Kadlec. cập nhật. 2008-07-15. Bình luận (11). Có liên quan. 1. 2. 3. 4. 5. Thêm > Tích hợp Microsoft Excel Tôi đã xem các mẹo trước đây của bạn (Xuất dữ liệu từ SQL Server sang Excel và Các tùy chọn khác nhau để nhập dữ liệu vào SQL Server) liên quan đến làm việc với dữ liệu Excel và SQL Server. Lệnh chính được sử dụng trong một trong các mẹo là OPENROWSET. Điều này có lợi cho chúng tôi vì trong môi trường của chúng tôi vì người dùng doanh nghiệp của chúng tôi cung cấp dữ liệu cho chúng tôi dưới dạng bảng tính Excel. Nhiều tình huống kết thúc bằng việc dịch sang mã INSERT, UPDATE hoặc DELETE trong một hoặc nhiều cơ sở dữ liệu SQL Server của chúng tôi. Chúng tôi luôn tải dữ liệu lên một bảng và sau đó bắt đầu quá trình. Mặc dù quy trình này hoạt động, bạn có quen thuộc với bất kỳ tùy chọn nào khác để trực tiếp thực hiện các thao tác CHÈN, CẬP NHẬT hoặc XÓA không? Đúng - Bạn đã đúng, lệnh OPENROWSET có thể hỗ trợ trực tiếp các thao tác CHÈN, CẬP NHẬT hoặc XÓA như được minh họa trong các mẹo này. Xuất dữ liệu từ SQL Server sang Excel và các tùy chọn khác nhau để nhập dữ liệu vào SQL Server. Ngoài ra, lệnh OPENROWSET cũng có thể hỗ trợ các câu lệnh CHỌN trong đó một bảng được nối với bảng tính Excel. Hãy xem qua một số ví dụ với cơ sở dữ liệu mẫu của SQL Server 2005 AdventureWorks cho mỗi thao tác với một bảng tính Excel mẫu Đối với tất cả các ví dụ này, vui lòng làm như sau Dưới đây là bốn ví dụ để cho thấy một số tính linh hoạt với lệnh OPENROWSET Giải thích mã - Với truy vấn bên dưới, 5 bản ghi sẽ được trả về để hiển thị một câu lệnh INNER JOIN đơn giản có thể trả về một tập hợp kết quả duy nhất từ cả hai dữ liệu trong bảng ([Sales]. [Nhân viên bán hàng]) và bảng tính Excel INSERT với câu lệnh SELECTGiải thích mã - Với khối mã đầu tiên, năm bản ghi được chèn vào [AdventureWorks]. [Việc bán hàng]. [SalesPerson] bằng cách đọc dữ liệu từ trang tính INSERT_Example của bảng tính Excel. � Trong truy vấn thứ hai, dữ liệu được chèn vào được xác minh INSERT INTO [AdventureWorks].[Sales].[SalesPerson](SalesPersonID, TerritoryID, SalesQuota, Bonus, CommissionPct, SalesYTD, SalesLastYear, rowguid, ModifiedDate) SELECT SalesPersonID ,TerritoryID ,SalesQuota ,Bonus ,CommissionPct ,SalesYTD ,SalesLastYear ,NEWID() ,GETDATE() FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\MSSQLTips\1540_OPENROWSET_Examples.xls;', 'SELECT SalesPersonID, TerritoryID, SalesQuota, Bonus, CommissionPct, SalesYTD, SalesLastYear FROM [INSERT_Example$]') GO SELECT * FROM [AdventureWorks].[Sales].[SalesPerson] WHERE SalesPersonID IN (1, 2, 3, 4, 5) GO CẬP NHẬT với Tuyên bố THAM GIAGiải thích mã - Với khối mã đầu tiên, năm bản ghi được cập nhật trong [AdventureWorks]. [Việc bán hàng]. [SalesPerson] bằng cách đọc dữ liệu từ trang tính UPDATE_Example của bảng tính Excel. � Trong truy vấn thứ hai, dữ liệu cập nhật được xác minh UPDATE SP SET SP.Bonus = T.Bonus FROM [AdventureWorks].[Sales].[SalesPerson] SP INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\MSSQLTips\1540_OPENROWSET_Examples.xls;', 'SELECT SalesPersonID, TerritoryID, SalesQuota, Bonus FROM [UPDATE_Example$]') T ON SP.SalesPersonID = T.SalesPersonID AND SP.TerritoryID = T.TerritoryID AND SP.SalesQuota = T.SalesQuota GO SELECT * FROM [AdventureWorks].[Sales].[SalesPerson] WHERE SalesPersonID IN (1, 2, 3, 4, 5) GO XÓA với Tuyên bố THAM GIAGiải thích mã - Với khối mã đầu tiên, năm bản ghi sẽ bị xóa trong [AdventureWorks]. [Việc bán hàng]. [SalesPerson] bằng cách đọc dữ liệu từ trang tính DELETE_Example của bảng tính Excel. � Trong truy vấn thứ hai, dữ liệu đã xóa được xác minh DELETE SP FROM [AdventureWorks].[Sales].[SalesPerson] SP INNER JOIN OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\MSSQLTips\1540_OPENROWSET_Examples.xls;', 'SELECT SalesPersonID, TerritoryID, SalesQuota, Bonus FROM [UPDATE_Example$]') T ON SP.SalesPersonID = T.SalesPersonID AND SP.TerritoryID = T.TerritoryID GO SELECT * FROM [AdventureWorks].[Sales].[SalesPerson] WHERE SalesPersonID IN (1, 2, 3, 4, 5) GO Phân tích chungVề việc chuyển đổi mã của bạn sang phương pháp mới, tôi chưa gặp phải bất kỳ vấn đề nào về hiệu suất với 1000 bản ghi, nhưng đó dường như là mối quan tâm đầu tiên. Nếu bạn kiểm tra phương pháp và hiệu suất tổng thể không phải là vấn đề, thì hãy xem xét phương pháp. Cũng có thể nhanh hơn để thực hiện một CẬP NHẬT duy nhất như trường hợp của ví dụ trên so với tải lên (CHÈN. CHỌN) dữ liệu và sau đó thực hiện CẬP NHẬT dựa trên bảng mới. Ngoài ra, bằng cách sử dụng các lệnh được liệt kê ở trên so với quy trình hai bước, mã tổng thể có thể sạch hơn một chút. Cân nhắc thứ hai với SQL Server 2005 là cài đặt Cấu hình Diện tích Bề mặt phải được bật để sử dụng mã này trong cả hai trường hợp. Cuối cùng, với một trong hai cách tiếp cận, hãy đảm bảo dọn sạch mọi bảng tính Excel hoặc bảng tạm thời sau khi bạn hoàn thành chúng Bước tiếp theo
Những bài viết liên quanXuất dữ liệu từ SQL Server sang Excel Nhập dữ liệu unicode của Excel bằng Dịch vụ tích hợp máy chủ SQL Nhập dữ liệu Excel vào SQL Server bằng cách sao chép và dán Nhập dữ liệu Excel với Dịch vụ tích hợp máy chủ SQL Xuất dữ liệu từ SQL Server sang Excel Nhập dữ liệu Excel vào SQL Server bằng cách sao chép và dán Báo cáo máy chủ SQL với Microsoft Excel Sử dụng Máy chủ được Liên kết Máy chủ SQL để Truy vấn Tệp Excel PowerPivot với Excel 2013 Xây dựng các Chỉ số Hiệu suất Chính (KPI) với PowerPivot Truyền các giá trị truy vấn động từ Excel sang SQL Server Trích xuất Danh sách SharePoint bằng Power Query Gấp truy vấn trong Power Query để cải thiện hiệu suất Truy xuất kích thước tệp từ hệ thống tệp bằng Power Query Sử dụng Microsoft Query trong Excel để truy xuất dữ liệu máy chủ SQL Cách tạo Biểu đồ Burndown trong Excel từ đầu Đọc tệp Excel trong SQL Server bằng OPENROWSET hoặc OPENDATASOURCE Tải dữ liệu Excel vào máy chủ SQL Phân tích kết quả máy chủ SQL trong Excel với định dạng có điều kiện Sử dụng tham số Excel để tự động xuất dữ liệu máy chủ SQL Các bài viết phổ biếnChuyển đổi ngày và giờ bằng SQL Server Định dạng ngày máy chủ SQL với chức năng FORMAT SQL Server ÁP DỤNG CHÉO và ÁP DỤNG NGOÀI Ví dụ về con trỏ máy chủ SQL SQL Server DROP TABLE IF EXISTS Các ví dụ Toán tử SQL NOT IN Cuộn nhiều hàng thành một hàng và cột cho dữ liệu SQL Server Làm cách nào để biết bạn đang chạy phiên bản SQL Server nào Giải quyết lỗi không thể mở kết nối với SQL Server SQL Chuyển đổi ngày thành YYYYMMDD Cộng và trừ ngày bằng cách sử dụng DATEADD trong SQL Server Máy chủ SQL lặp qua các hàng của bảng mà không cần con trỏ Sử dụng MERGE trong SQL Server để chèn, cập nhật và xóa cùng một lúc Số lượng hàng của máy chủ SQL cho tất cả các bảng trong cơ sở dữ liệu Cách lấy ngày hiện tại trong SQL Server Nối các cột Máy chủ SQL thành một Chuỗi với CONCAT() Các cách so sánh và tìm sự khác biệt cho các bảng và dữ liệu SQL Server Định dạng số trong SQL Server Cơ sở dữ liệu máy chủ SQL bị kẹt trong trạng thái khôi phục Hiển thị số dòng trong cửa sổ truy vấn SQL Server Management Studio Thông tin về các Tác giảJeremy Kadlec là Đồng sáng lập, Biên tập viên và Tác giả tại MSSQLTips. com, CTO @ Edgewood Solutions và sáu lần đạt MVP SQL Server.Xem tất cả mẹo của tôi Article Last Updated: 2008-07-15 Nhận xét cho bài viết nàyThêm nhận xétThứ năm, ngày 13 tháng 6 năm 2019 - 3. 39. 55 giờ chiều - Jeremy KadlecQuay lại đầu trang (81459) YLI, Hãy tham khảo những lời khuyên này https. //www. mssqltips. com/sqlservertip/1430/import-excel-data-into-sql-server-using-copy-and-paste/ https. //www. mssqltips. com/sqlservertip/2002/import-excel-data-with-sql-server-integration-services/ https. //www. mssqltips. com/sqlservertip/2770/nhập-dữ-liệu-từ-excel-using-ssis--part-1/ https. //www. mssqltips. com/sqlservertip/2772/importing-data-from-excel-using-ssis--part-2/ HTH Cảm ơn bạn, Thứ năm, ngày 13 tháng 6 năm 2019 - 2. 17. 27 giờ chiều - YLIQuay lại đầu trang (81458) Có cách nào để tôi có thể nhập dữ liệu trong Excel và tải trực tiếp vào máy chủ sql không? Cám ơn rất nhiều YLI Thứ năm, 19 Tháng 10, 2017 - 4. 32. 11h - nickQuay Lên Đầu (68539)
Chào Jeremy, bạn có thể đăng một video hướng dẫn không? Thứ hai, ngày 19 tháng 11 năm 2012 - 8. 21. 11 giờ tối - AryQuay lại đầu trang (20421)
Chào Jeremy, Cảm ơn bạn rất nhiều vì đã cân nhắc giúp đỡ. Tôi hình dung tôi có thể thực hiện điều đó bằng cách sử dụng ADODB. Tôi cũng muốn học cách sử dụng OLEDB. Sau đây là chi tiết Hệ thống SQL của tôi. Tôi đang sử dụng MS Office 2010 Excel VBA
Thứ hai, ngày 19 tháng 11 năm 2012 - 9. 40. 13 giờ sáng - Jeremy KadlecTrở lại đầu trang (20410) ary, Bạn có thể đăng mã gây ra sự cố không? Bạn đang làm việc trên phiên bản SQL Server, gói dịch vụ và phiên bản SQL Server nào? Cảm ơn bạn, Chủ Nhật, 18 Tháng 11 2012 - 12. 13. 57 giờ chiều - aryBack To Top (20401) Tôi đã làm theo các bước trên tuy nhiên tôi gặp lỗi sau
Msg 7399, Cấp 16, Trạng thái 1, Dòng 1
Xin vui lòng giúp đỡ. Tôi đã sử dụng sp_configure để kích hoạt truy vấn từ xa đặc biệt và tự động hóa OLE trong SQL Facets. Cũng đề nghị nếu có một cách để cập nhật dữ liệu excel bằng cách sử dụng macro vba hoặc cách khác mà không cần phải đăng nhập vào ssms? Thứ ba, ngày 3 tháng 7 năm 2012 - 12. 25. 17 giờ chiều - richardBack To Top (18324) Xin chào, Bạn có thể muốn biết về một cách tiếp cận khác - bạn có thể dùng thử cách này miễn phí - bao gồm các mẫu và xác thực cũng như gửi dữ liệu từ excel tới các thủ tục được lưu trữ cũng như các bảng Excel vào cơ sở dữ liệu Cám ơn sự quan tâm của bạn
Thứ bảy, ngày 16 tháng 8 năm 2008 - 8. 53. 36 PM - odeddrorBack To Top (16h45) vâng tôi đã làm Thứ hai, ngày 11 tháng 8 năm 2008 - 8. 22. 29 AM - ddnikonBack To Top (1623) Bạn có mẫu mã bạn đang sử dụng không? Thứ hai, ngày 11 tháng 8 năm 2008 - 8. 02. 08 AM - odeddrorBack To Top (1622) Chào bạn, Tôi không biết nếu đây là đúng nơi nhưng Tôi đang sử dụng Windows Vista Business x64 SP1 và SQL Server 2005 Devloper x64 SP2 Khi tôi chạy ví dụ này, tôi nhận được (thậm chí tôi đã đặt cấu hình SQL OPENROWSET ON) Msg 7403, Cấp 16, Trạng thái 1, Dòng 1 Nhà cung cấp OLE DB "Microsoft. máy bay phản lực. OLEDB. 4. 0" chưa được đăng ký Có lẽ bạn có mẹo về vấn đề này?
Cảm ơn, Oded Dror Thứ ba, ngày 29 tháng 7 năm 2008 - 6. 29. 49 PM - ddnikonBack To Top (1526) Tôi đã mã hóa ví dụ chính xác như được mô tả, bật xp_cmdshell và tải xuống bảng tính Excel. Tuy nhiên, SalesPersonId khác với Id trong bảng, số ID bảng bắt đầu từ những năm 200 ( 268, 275, 276, v.v. ), vì vậy tôi đã treo chúng trên bảng tính. Truy vấn chạy thành công, nhưng không có hàng nào được cập nhật và không thể hiểu tại sao. Bạn có đề nghị nào không? . Thanks cho bất kỳ giúp bạn có thể cung cấp cho. Giảng viên đại học Làm cách nào để cập nhật dữ liệu hàng loạt Excel trong SQL Server?Tải xuống và cài đặt Phần bổ trợ SQL Spread Excel. Chuyển đến tab SQL Spreads trong Excel và chọn Chế độ thiết kế. Một danh sách các cơ sở dữ liệu sẽ xuất hiện ở bên phải. Chọn cơ sở dữ liệu bạn đang sử dụng và chọn một bảng SQL để cập nhật từ Excel
Làm cách nào để sao chép dữ liệu hàng loạt từ Excel sang SQL?1. Trong Object Explorer, nhấp chuột phải vào cơ sở dữ liệu/bảng/khung nhìn được yêu cầu và nhấp vào Xuất dữ liệu trên menu lối tắt để gọi trình hướng dẫn xuất . Trên trang đầu tiên, Xuất định dạng, chọn định dạng ưa thích. MS Excel (. xls) hoặc MS Excel 2007 (.
Tôi có thể cập nhật tất cả các hàng trong SQL không?Chúng tôi có thể cập nhật tất cả các hàng trong cơ sở dữ liệu hoặc một số giá trị với sự trợ giúp của các điều kiện . Bản cập nhật là một từ khóa SQL và nó thuộc Ngôn ngữ thao tác dữ liệu (DML), như tên cho thấy nó được sử dụng để thao tác dữ liệu.
Excel có thể ghi vào cơ sở dữ liệu SQL không?Kết nối Excel và tải dữ liệu
. Trong thanh menu ở đầu trang, chọn tab Dữ liệu, chọn Lấy dữ liệu, chọn Từ Azure, sau đó chọn Từ Cơ sở dữ liệu Azure SQL. To connect Excel to a database in SQL Database, open Excel and then create a new workbook or open an existing Excel workbook. In the menu bar at the top of the page, select the Data tab, select Get Data, select From Azure, and then select From Azure SQL Database. |