数据库导出excel语句,说可视化的就不要进了

小弟要吧数据库诗句导入到excel文件去,可是数据量太大了要花10分钟左右,无奈,听说用sql语句能加快速度,查看资料灰常纠结,还请大哥大姐指点别人说select*int... 小弟要吧数据库诗句导入到excel文件去,可是数据量太大了要花10分钟左右,无奈,听说用sql语句能加快速度,查看资料灰常纠结,还请大哥大姐指点
别人说
select * into [Excel 8.0;database=导出目录].导出表名 from 表
select * into [FoxPro 2.6;database=导出目录].导出表名 from 表
select * into [FoxPro 2.5;database=同上].导出表名 from 表
select * into [dBase III;database=同上].导出表名 from 表
select * into [Paradox 4.X;database=同上].导出表名 from 表
select * into [;database=C:\temp\xxx.mdb].导出表名 from 表
呀的这不是坑爹嘛,
insert into OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 8.0;HDR=YES;DATABASE=c:/1.xls',sheet1$)
用这个提示错误
消息 15281,级别 16,状态 1,第 1 行
SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
希望高手指点
展开
 我来答
慕桖寄春t8
2011-09-13
知道答主
回答量:13
采纳率:0%
帮助的人:4.6万
展开全部
在查询分析器里,直接写 SQL语句:

如果是导入数据到现有表,则采用

INSERT INTO 表 SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

的形式

如果是导入数据并新增表,则采用

SELECT * INTO 表 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

的形式。

以上语句是将 EXCEL文件里 SHEET1工作表中所有的列都读进来,如果只想导部分列,可以

INSERT INTO 表 (a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)

其实可以将 OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)当成一个表,例如我就写过这样一个句子:

INSERT INTO eval_channel_employee(channel,employee_id)

SELECT CASE a.渠道 WHEN 'DIY' THEN 1 WHEN 'RDC' THEN 0 WHEN 'KCM' THEN 2 ELSE 3 END

,b.id FROM

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel 5.0;HDR=YES;DATABASE=c:\temp\name.xls',sheet1$) AS a,pers_employee b

WHERE a.员工编码 =b.code

简单的方法:
SQL2005中直接可以实现导入功能 SQL2008不知道可不可以。

操作过程如下:

第一步:登录到 SQL Server Management Studio,

第二步:在 “对象资源管理器 ”中右键单击 “管理 ”,在弹出列表中单击 “导入数据 ”

第三步:在 “导入向导 ”对话框中单击 “下一步 ”,进入到 “选择数据源 ”对话框,在 “数据源 ”列表中选择 “Microsoft Excel ”,同时选择相应的 Excel 文档,完成后单击 “下一步 ”(一定要勾选该对话框中的 “首行包含列名称 ”,因此它是将 Excel文档中的列标题为数据库表中的列项标题)

第四步:指定目标数据库服务,依次单击 “下一步 ”。。。。至到 “完成 ”

第五步:重新打到 SQL Server Management Studio,进入到导入的数据库表,可以发现所导入的 Excel文档数据。

你试下下面的吧:
打开SQL Server Configuration Manager,启用SQL Server Agent(实例名)。 启动模式更改为“自动”
呼延冷雁
2011-09-09 · TA获得超过347个赞
知道答主
回答量:401
采纳率:0%
帮助的人:285万
展开全部
给你一段代码,你照着写应该就可以了:
Private Sub Command5_Click()
Dim rs As DAO.Recordset
Dim Filnum As Long
Dim Recnum As Long
Dim xlapp As Object

Set rs = Me.打印价签导出子窗体.Form.Recordset
Set xlapp = CreateObject("excel.application")
xlapp.Visible = True
xlapp.Workbooks.Open ("D:\购好超市\促销及价格管理\标签格式\促销标签打印格式--特价.xlsx")
Dim sheet As Object
Set sheet = xlapp.sheets("内容")
rs.MoveFirst
Recnum = 2
Do Until rs.EOF
For Filnum = 0 To rs.Fields.Count - 1
sheet.cells(Recnum, Filnum + 1) = rs.Fields(Filnum)
Next
Recnum = Recnum + 1
rs.MoveNext
Loop
Set sheet = xlapp.sheets("格式1")
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式