如何利用SQL语言从Access导入表到SQL Server?
1.在SQL SERVER里查询access数据:
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="C:/.../....biz";User ID=Admin;Password=')...表名
注: SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
解决方法: 启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure 使用完成后,关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure
2 .将access导入SQL server
SELECT * INTO BCR.dbo.tablename FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source=" C:/.../....biz ";User ID=Admin;Password=')...表名
3 .将SQL SERVER表里的数据插入到Access表中 在SQL SERVER 里运行: insert into OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source=" c:/DB.mdb";User ID=Admin;Password= ' ) 表名 (列名1,列名2) select 列名1,列名2 from sql表 实例: insert into OPENROWSET ( ' Microsoft.Jet.OLEDB.4.0 ' , ' C:/db.mdb ' ; ' admin ' ; '' , Test) select id,name from Test INSERT INTO OPENROWSET ( ' Microsoft.Jet.OLEDB.4.0 ' , ' c:/trade.mdb ' ; ' admin ' ; '' , 表名) SELECT * FROM sqltablename
二、SQL SERVER 和EXCEL的数据导入导出 1 、在SQL SERVER里查询Excel数据: SELECT * FROM OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' ) [ Sheet1$ ] 下面是个查询的示例,它通过用于 Jet 的 OLE DB 提供程序查询 Excel 电子表格。 SELECT * FROM OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' ) xactions 2 、将Excel的数据导入SQL server : SELECT * into newtable FROM OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:/book1.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' ) [ Sheet1$ ] 实例: SELECT * into newtable FROM OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:/Finance/account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' ) xactions 3 、将SQL SERVER中查询到的数据导成一个Excel文件 T - SQL代码: EXEC master..xp_cmdshell ' bcp 库名.dbo.表名out c:/Temp.xls -c -q -S"servername" -U"sa" -P"" ' 参数:S 是SQL服务器名;U是用户;P是密码 说明:还可以导出文本文件等多种格式 实例: EXEC master..xp_cmdshell ' bcp saletesttmp.dbo.CusAccount out c:/temp1.xls -c -q -S"pmserver" -U"sa" -P"sa" ' EXEC master..xp_cmdshell ' bcp "SELECT au_fname, au_lname FROM pubs..authors ORDER BY au_lname" queryout C:/ authors.xls -c -Sservername -Usa -Ppassword ' 在VB6中应用ADO导出EXCEL文件代码: Dim cn As New ADODB.Connection cn. open "Driver = {SQL Server};Server = WEBSVR; DataBase = WebMis;UID = sa;WD = 123 ;" cn. execute "master..xp_cmdshell ' bcp "SELECT col1, col2 FROM 库名.dbo.表名" queryout E:/DT.xls -c -Sservername -Usa -Ppassword ' " 4 、在SQL SERVER里往Excel插入数据: insert into OpenDataSource ( ' Microsoft.Jet.OLEDB.4.0 ' , ' Data Source="c:/Temp.xls";User ID=Admin;Password=;Extended properties=Excel 5.0 ' ) table1 (A1,A2,A3) values ( 1 , 2 , 3 ) T - SQL代码: INSERT INTO OPENDATASOURCE ( ' Microsoft.JET.OLEDB.4.0 ' , ' Extended Properties=Excel 8.0;Data source=C:/training/inventur.xls ' ) [ Filiale1$ ] (bestand, produkt) VALUES ( 20 , ' Test ' )