Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Excel thành SQL Server với Microsoft.ACE.OLEDB.12.0

Như Philip đã nói ... trước tiên hãy kiểm tra việc thực thi xp_cmdshell. Nếu nó không chạy do vấn đề về quyền thì trước tiên hãy định cấu hình lại tùy chọn này bằng cách chạy

SP_CONFIGURE 'XP_CMDSHELL',1
GO             
RECONFIGURE

sau khi chạy lệnh sau để bật quyền máy chủ được liên kết cho các khả năng InProcess cho trình điều khiển ACE:

USE [master]
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO

EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO

Bây giờ hãy chạy chuỗi lệnh sau:

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

nếu gặp lỗi thì hãy chạy từng lệnh riêng biệt. Và cuối cùng chạy nhập tất cả dữ liệu excel của bạn vào máy chủ SQL bằng cách chạy lệnh được đề cập bên dưới:

SELECT * INTO TargetTableName FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
                         'Excel 12.0;Database=FilePath\fileName.xlsx;HDR=YES',
                         'SELECT * FROM [sheetName$]')

Hãy nhớ rằng trong trường hợp xls, bạn phải sử dụng Jet Driver thay vì ACE. Và TargetTableName cũng không được tồn tại trước khi chạy truy vấn này.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thủ tục đã lưu trữ xuất dữ liệu thành tệp csv chỉ xuất sang một tệp

  2. Làm thế nào để đính kèm MDF mà không có tệp nhật ký?

  3. Máy chủ thích ứng không khả dụng hoặc không tồn tại lỗi kết nối với SQL Server từ PHP

  4. Cách thêm cột được tính toán trong bảng SQL Server - Hướng dẫn SQL Server / T-SQL Phần 47

  5. Tại sao truy vấn này chậm lần đầu tiên sau khi tôi bắt đầu dịch vụ?