將ACCESS資料批量匯入SQL SERVER

2021-09-20 22:49:41 字數 4208 閱讀 5347

**:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

if object_id('sp_inputaccesstosql')isnotnull

dropproc sp_inputaccesstosql

go

createproc sp_inputaccesstosql

@dir nvarchar(100),--access檔案存放路徑:如d:\files

@tabname nvarchar(50)--定義匯入到資料庫中的表名,如果存在就不需要建立

as

setnocounton

declare@cmd nvarchar(1000)

createtable#t([filename] nvarchar(1000))

ifright(@dir,1)<>'\'

set @dir=@dir+'\'

set @cmd = n'dir"' + @dir + '*.mdb"/b'

insert #t exec master..xp_cmdshell @cmd

delete #t where [filename] is null

--在sql中建立表:

declare @s nvarchar(max)

if object_id(@tabname) is null

begin

select top 1 @s='selecttop0 *into'+ @tabname+'fromopenrowset(

''microsoft.ace.oledb.12.0'','''+@dir+[filename]+''';''admin'';'''','+@tabname+')'

from #t

exec(@s)

end

--開始匯入目錄下的檔案

set @s = ''

select @s = @s + 'insert'+@tabname+'select*fromopenrowset(

''microsoft.ace.oledb.12.0'','''+@dir+[filename]+''';''admin'';'''','+@tabname+')'

from #t

exec(@s)

set nocount off

go

--呼叫:

exec sp_inputaccesstosql 'f:\test','table_name'

注意:根據系統安裝access版本的不同,microsoft.ace.oledb.12.0可能替換為這個microsoft.jet.oledb.4.0 。

faq:

q1: sql server 阻止了對元件 'xp_cmdshell' 的 過程 'sys.xp_cmdshell' 的訪問...

a1: 執行以下sql語句:

1

2

3

4

5

6

sp_configure'show advanced options',1

reconfigure

go

sp_configure'xp_cmdshell',1

reconfigure

go

q2: sql server 阻止了對元件 'ad hoc distributed queries' 的訪問...

a2: 執行以下sql語句:

1

2

3

execsp_configure'ad hoc distributed queries',1;

reconfigure;

go

參考:一、二、三

ps、此方法對上百兆的access檔案速度特別慢,請慎重考慮。

*** walker ***

rqslt

將excel 檔案匯入access資料表

dim conn asnew oledbconnection my.settings.connstr datawarehouse.mdb dimcomm asoledbcommand conn.createcommand comm.commandtext insert into tablename ...

sqlldr,將資料批量匯入Oracle資料庫

首先介紹一下sqlldr工具,它是由oracle提供,專本用於把文字資料匯入到oracle資料庫。它需要兩個檔案,乙個是文字資料檔案,另外乙個是ctl檔案。ctl檔案主要是配置一些引數,比如文字資料的分割符,首行或其他具體行需不需要跳過,匯入到哪張表,欄位都哪些,這些欄位都是什麼屬性等等。首先我設計...

springboot匯入access資料庫檔案

這裡坑就來了 網上各種各樣的方法去連線 但是jdk版本有的支援有的不支援我就不太明白了,連線不上各種報錯,報錯 就不貼了 具體的我也不太懂,就給看一下我是怎麼解決的,怎麼連線的.1.如下 pom中新增依賴 net.sf.ucanaccess groupid ucanaccess artifactid...