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

Không thể nhập dữ liệu từ excel 2003 vào cơ sở dữ liệu bằng hàm openrowset

Truy vấn SQL cho hàm OPENROWSET:-

1) Mở SQL Server Management Studio

2) Mở bảng truy vấn và viết các lệnh sau

3) Đối với tệp Excel 97 - 2003 là tệp có phần mở rộng XLS sử dụng

SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')

tôi. Nó sẽ tạo bảng có tên Địa chỉ trong cơ sở dữ liệu được chọn hiện tại.

ii. Microsoft.Jet.OLEDB.4.0 là trình điều khiển được sử dụng để chuyển đổi

iii. Tệp Excel có đường dẫn - D:\ SQL Scripts \ msp.xls

iv. IMEX =1 thuộc tính bao gồm, các cột chứa kiểu dữ liệu trộn lẫn được coi là kiểu dữ liệu chuỗi / văn bản.

v. HRD =Thuộc tính Yes có nghĩa là hàng trên cùng của tệp excel bao gồm tên Tiêu đề Cột

vi. Sheet1 là tên của trang tính bạn muốn nhập

vii. Excel 8.0 chỉ định rằng đó là tệp excel định dạng 97 - 2003

4) Để sử dụng truy vấn bộ lọc, người dùng có thể sử dụng mệnh đề where cũng với lệnh này như

SELECT * INTO [dbo].[Addresses]
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]') where [column_name]=’value’

5) Để sao chép tệp excel trong bảng SQL được xác định trước, hãy sử dụng hàm OPENROWSET với lệnh chèn như:-

Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))

INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])

    SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=D:\SQL Scripts\msp.xls;IMEX=1;HRD=Yes','SELECT * FROM [Sheet1$]')

6) Đối với tệp Excel 2007 - 2010 là tệp có phần mở rộng XLSX sử dụng

SELECT * INTO [dbo]. [Addresses] FROM OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0; Database =D:\ SQL Scripts \ msp.xlsx; HDR =YES; IMEX =1', 'SELECT * TỪ [Sheet1 $] ')

tôi. Nó sẽ tạo bảng có tên Địa chỉ trong cơ sở dữ liệu được chọn hiện tại

ii. Microsoft.ACE.OLEDB.12.0 là trình điều khiển được sử dụng để chuyển đổi

iii. Tệp Excel có đường dẫn - D:\ SQL Scripts \ msp.xlsx

iv. IMEX =1 thuộc tính bao gồm, các cột chứa kiểu dữ liệu trộn lẫn được coi là kiểu dữ liệu chuỗi / văn bản.

v. HRD =Thuộc tính Yes có nghĩa là hàng trên cùng của tệp excel bao gồm tên Tiêu đề Cột

vi. Sheet1 là tên của trang tính bạn muốn nhập

vii. Excel 12.0 chỉ định rằng đó là tệp excel định dạng 2007 - 2010

7) Để sao chép tệp excel trong bảng SQL được xác định trước, hãy sử dụng hàm OPENROWSET với lệnh chèn như:-

Create table Custom (Source_IP_ADD varchar(20),API_NAME varchar(50),COUNT_NO varchar(5),CLIENT_ID varchar(50),Date_OF_INVOKE varchar(50))

INSERT INTO [dbo].[Custom] ( [Source_IP_ADD], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_OF_INVOKE])
SELECT [Source_IP_ADDR], [API_NAME], [COUNT_NO], [CLIENT_ID], [Date_INVOK] FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0' ,'Excel 12.0;Database=D:\SQL Scripts\msp.xlsx;HDR=YES;IMEX=1' ,'SELECT * FROM [Sheet1$]')



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật bảng bằng cách sử dụng JOIN trong SQL Server?

  2. Tìm kết hợp chính xác bằng cách sử dụng tìm kiếm toàn văn

  3. SSRS trả về kết quả khác với quy trình được lưu trữ

  4. Linq Đến Sql và ID_insert

  5. Sao chép / đồng bộ hóa cơ sở dữ liệu SQL Server Express