SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的访问

guduguoker 2010-01-06 10:21:40
程序原来使用的是ACCESS数据库,现在想换成SQL数据库,机子里没有装SQL2000,只是在安装VB2005时自带了SQL2005。现在我使用如下语句想把ACCESS中的表都复制到SQL中,但执行时提示:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
SELECT * INTO GradesInfo FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source=F:\WindowsApplication1\bin\Release\datas\DataBase.mdb;User ID=Admin;Password=123.0')...GradesInfo

我使用“外围应用配置器”,已经在“启用OpenRowset和OpenDatasource支持”前打了勾,重启电脑后依然提示如旧。
网上还有说法是使用代码,看起来应该是在SQL中操作,可我的机子没有SQL的操作界面,实在不知该怎么办了?
...全文
694 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
headhaibo 2011-06-15
  • 打赏
  • 举报
回复
EXEC sp_configure'Ad Hoc Distributed Queries',1;
GO
RECONFIGURE ;
GO

It's working..
use_zj 2010-01-09
  • 打赏
  • 举报
回复
装个完整版的sql
guduguoker 2010-01-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bancxc 的回复:]
SQL codesp_configure'Ad Hoc Distributed Queries',1]RECONFIGURE
[/Quote]
我也查到了这个方法,可我不知道该在哪里去写这句话。VS2005自带的SQL只有一个服务和配置,不能直接打开数据库。
bancxc 2010-01-06
  • 打赏
  • 举报
回复
sp_configure 'Ad Hoc Distributed Queries',1]
RECONFIGURE
Office数据库升迁 Access 导入 SQL Server,相信大家都知道 SQL-Server 数据库导入导出功能吧,但当你装了精简版的SQL-Server这个功能就会没有了,也就是无法实现数据库导入导出,那么怎么办 写SQL语句? Insert into Tables SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source="E:\Access.mdb";') 显然在正常情况下这可以 但如果你看见提示 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. 这时怎么办? EXEC sp_configure 'show advanced options', 1 EXEC sp_configure 'Ad Hoc Distributed Queries', 1 结果你又被提示: 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. 很明确这条路是走不通了,因为精简版的SQL-Server没这功能。所以你就要用的我的资源了。这里主要是通过Access自带功能(你要安装这个,暂时叫插件吧)完成数据库转换。 步骤: 1.打开Access 点击菜单栏中的--》工具 2.打开 工具栏下的--》数据库实用工具 3.选择 升迁向导(和SQL导入那里一样了 相当于数据库导出 ) 选择你的 SQL-Server 服务器地址,登陆账号和密码,同时填写 生成后的SQL-Server数据库名称,就这样简单完成了。Access到SQL-Server的转换。 Ps:当然你装的是完整版的SQL-Server, 直接可以导入导出(语句也可以的),不用这样麻烦,但如果你装的就是SQL-Server精简版那么这或许是最后的方法,同时也是对Access转SQL-Server有一个新的认识。 文件包: PRO11.MSI,A4561414.CAB,CR561401.CAB,MA561416.CAB,PA561401.CAB,SKU011.CAB,YI561401.CAB,YS561409.CAB,ZA561401.CAB, ZD561403.CAB,ZU561415.CAB,ZZ561401.CAB(office2003的) 我也是因为遇见这问题,才按这个方法成功的。希望对大家都帮助

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧