返回首页
当前位置: 主页 > 网络编程 > 其他实例教程 >

直接把Excel的数据导入到Sql server中相关错误解决方法详解

时间:2010-09-29 10:55来源:知行网www.zhixing123.cn 编辑:麦田守望者

直接把Excel的数据导入到Sql server中相关错误解决方法

sql语句:
SELECT * into sheet$
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=C:\Documents and Settings\liurj\Desktop\temp\a.xls;User ID=Admin;Password=;Extended properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...[Sheet$]
或者
select * into sheet3$
from OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Excel 5.0;HDR=YES;DATABASE=C:\Documents and Settings\liurj\Desktop\temp\a.xls',[Sheet$])

导入excel到数据库中的一个表
错误提示:
Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.
用sp_configure将'Ad Hoc Distributed Queries' 打开并设置
USE master
go
EXEC sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE;
EXEC sp_configure;
错误提示:
Msg 15123, Level 16, State 1, Procedure sp_configure, Line 51
The configuration option 'Ad Hoc Distributed Queries' does not exist, or it may be an advanced option.
显示高级选项:
sp_configure 'show advanced options',1
RECONFIGURE WITH override
go
sp_configure 'Ad Hoc Distributed Queries',1
RECONFIGURE WITH override
go
从另一个sql server导入sql server的代码是:
SELECT *
FROM OPENDATASOURCE(
'SQLOLEDB',
'server=YKTCPC-105\\JERRYSQL2000;user id=sa;password=123456;database=Ys2008'
).ys2008.dbo.yy_user
OPENDATASOURCE用法解释
不使用链接的服务器名,而提供特殊的连接信息,并将其作为四部分对象名的一部分。
语法
OPENDATASOURCE ( provider_name, init_string )
参数
provider_name
注册为用于访问数据源的 OLE DB 提供程序的 PROGID 的名称。provider_name 的数据类型为 char,没有默认值。init_string连接字符串,这些字符串将要传递给目标提供程序的 IDataInitialize 接口。提供程序字符串语法是以关键字值对为基础的,这些关键字值对由分号隔开,例如:"keyword1=value; keyword2=value."
在 Microsoft® Data Access SDK 中定义了基本语法。有关所支持的特定关键字值对的信息,请参见提供程序中的文档。下表列出 init_string 参数中最常用的关键字。关键字 OLE DB 属性有效值和描述
数据源 DBPROP_INIT_DATASOURCE 要连接的数据源的名称。不同的提供程序用不同的方法对此进行解释。对于 SQL Server OLE DB 提供程序来说,这会指明服务器的名称。对于 Jet OLE DB 提供程序来说,这会指明 .mdb 文件或 .xls 文件的完整路径。
位置 DBPROP_INIT_LOCATION 要连接的数据库的位置。
扩展属性 DBPROP_INIT_PROVIDERSTRING 提供程序特定的连接字符串。
连接超时 DBPROP_INIT_TIMEOUT 超时值,在该超时值后,连接尝试将失败。
用户 ID DBPROP_AUTH_USERID 用于该连接的用户 ID。
密码 DBPROP_AUTH_PASSWORD 用于该连接的密码。
目录 DBPROP_INIT_CATALOG 连接到数据源时的初始或默认的目录名称。
注释
OPENDATASOURCE 函数可以在能够使用链接服务器名的相同 Transact-SQL 语法位置中使用。因此,就可以将 OPENDATASOURCE 用作四部分名称的第一部分,该名称指的是 SELECT、INSERT、UPDATE 或 DELETE 语句中的表或视图的名称;或者指的是 EXECUTE 语句中的远程存储过程。当执行远程存储过程时,OPENDATASOURCE 应该指的是另一个 SQL Server。OPENDATASOURCE 不接受参数变量。与 OPENROWSET 函数类似,OPENDATASOURCE 应该只引用那些不经常访问的 OLE DB 数据源。对于访问次数稍多的任何数据源,请为它们定义链接的服务器。无论 OPENDATASOURCE 还是 OPENROWSET 都不能提供链接的服务器定义的全部功能,例如,安全管理以及查询目录信息的能力。每次调用 OPENDATASOURCE 时,都必须提供所有的连接信息(包括密码)。
 

------分隔线----------------------------
标签(Tag):数据库 SQLServer Sqlserver2008 SQLServer2005
------分隔线----------------------------
推荐内容
猜你感兴趣