sql server 2008怎么导入excel
答案:2 悬赏:10 手机版
解决时间 2021-03-05 02:54
- 提问者网友:眉目添风霜
- 2021-03-04 19:35
sql server 2008怎么导入excel
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-03-04 20:38
--首先打开SSMS,然后点击左上角的【新建查询(N)】,在右边弹出的窗口中输入一下代码:
代码一:
----------------------------------------------------------------------------------------
use TEST
--- ‘TEST’是数据库名字,你可以切换到你想要的数据库或直接输入数据库名字
----根据系统需要使用这几段批处理命令打开相应功能
EXEC sp_configure 'show
advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc
Distributed Queries', 1;
GO
RECONFIGURE;
GO
----以上为根据实际情况的可选命令
----开始插入数据到TEST数据库的一个新表中
select *
into newtable_name
from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
go
------------------------------------------------------------------------
P.S:
1:
执行这段代码之前,你需要准备导入的数据。 我用的是Excel 2007,
Excel文件的名字为“daoru”,放在C盘目录下。
2: 代码中的select * into newtable_name
from ...
这是把excel中的数据插入到TEST数据库中,并同时新建表名为newtable_name存放插入的数据.
3:
代码中的Office2007的数据库驱动为“Microsoft.Ace.OLEDB.12.0”,
如果是Office2003的话应改成“Microsoft.Jet.OLEDB.4.0”,
还有Office2007中Excel的“Extended properties”中为“Excel
12.0” 而Office2003为“Excel
8.0”
4:
代码中'Data Source="c:\daoru.xlsx" 就是要导入数据的文件存放路径. (注意后缀:Excel
2007的为.xlsx;Excel 2003的为.xls)
5:
代码中的...[sheet1$]
为表名,格式为:[XXX$]或者XXX$,不需要中括号也行,而且表名不能以数字开头(其实这是几乎所有编程语言的变量命名规则),切记!
没有修改过名字的话,Excel默认是shee1,shee2,shee3....
6:
当然,你也可以使导入的数据,不用新建表.而是直接导入到数据库已有的表中, 只要稍微修改代码就可以了.
代码二:
---------------------------------------------------------------------------------------
insert into 已存在的表名
(字段一,字段二)
select
A,B from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
go
---------------------------------------------------------------------------------------
代码二中,A,B表示的意思是Excel中的A列和B列,
但是直接输入A,B是没有用的.
这里还要提醒一点,导入数据的时候,系统默认Excel的第一行数据是字段名.
所以,你可以把Excel的第一行的前两列数据改为A和B,这样就可以了!
如果Excel中的列数和数据库中的已存在的表的列数相等,也可以改成如下:
代码三:
---------------------------------------------------------------------------------------
insert into 已存在的表名
select * from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
go
---------------------------------------------------------------------------------------
当然,我们可以利用Data Import for Sql
Server等工具来导入,也可以利用SQL Server 2008的DTS导入(在SQL Server Management
Studio的选择你要导入到的数据库如:TEST,右键选择“任务”——“导入数据”即可.
代码一:
----------------------------------------------------------------------------------------
use TEST
--- ‘TEST’是数据库名字,你可以切换到你想要的数据库或直接输入数据库名字
----根据系统需要使用这几段批处理命令打开相应功能
EXEC sp_configure 'show
advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ad Hoc
Distributed Queries', 1;
GO
RECONFIGURE;
GO
----以上为根据实际情况的可选命令
----开始插入数据到TEST数据库的一个新表中
select *
into newtable_name
from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
go
------------------------------------------------------------------------
P.S:
1:
执行这段代码之前,你需要准备导入的数据。 我用的是Excel 2007,
Excel文件的名字为“daoru”,放在C盘目录下。
2: 代码中的select * into newtable_name
from ...
这是把excel中的数据插入到TEST数据库中,并同时新建表名为newtable_name存放插入的数据.
3:
代码中的Office2007的数据库驱动为“Microsoft.Ace.OLEDB.12.0”,
如果是Office2003的话应改成“Microsoft.Jet.OLEDB.4.0”,
还有Office2007中Excel的“Extended properties”中为“Excel
12.0” 而Office2003为“Excel
8.0”
4:
代码中'Data Source="c:\daoru.xlsx" 就是要导入数据的文件存放路径. (注意后缀:Excel
2007的为.xlsx;Excel 2003的为.xls)
5:
代码中的...[sheet1$]
为表名,格式为:[XXX$]或者XXX$,不需要中括号也行,而且表名不能以数字开头(其实这是几乎所有编程语言的变量命名规则),切记!
没有修改过名字的话,Excel默认是shee1,shee2,shee3....
6:
当然,你也可以使导入的数据,不用新建表.而是直接导入到数据库已有的表中, 只要稍微修改代码就可以了.
代码二:
---------------------------------------------------------------------------------------
insert into 已存在的表名
(字段一,字段二)
select
A,B from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
go
---------------------------------------------------------------------------------------
代码二中,A,B表示的意思是Excel中的A列和B列,
但是直接输入A,B是没有用的.
这里还要提醒一点,导入数据的时候,系统默认Excel的第一行数据是字段名.
所以,你可以把Excel的第一行的前两列数据改为A和B,这样就可以了!
如果Excel中的列数和数据库中的已存在的表的列数相等,也可以改成如下:
代码三:
---------------------------------------------------------------------------------------
insert into 已存在的表名
select * from
OpenDataSource('Microsoft.Ace.OLEDB.12.0','Data
Source="c:\daoru.xlsx";Extended properties="Excel
12.0;HDR=Yes"')...[sheet1$]
go
---------------------------------------------------------------------------------------
当然,我们可以利用Data Import for Sql
Server等工具来导入,也可以利用SQL Server 2008的DTS导入(在SQL Server Management
Studio的选择你要导入到的数据库如:TEST,右键选择“任务”——“导入数据”即可.
全部回答
- 1楼网友:孤独的牧羊人
- 2021-03-04 21:32
鼠标点在要导入的数据库上,右键出现菜单框 ,选择 所有工作---导入数据,然後按照对话框一步步执行就行了
要注意excel里的第一行空出来,因为导入的时候会把第一行数据默认为抬头,第一行数据就不会导入 ,还有就是你的栏位数量要一致
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯