当我OPENROWSET在SQL Server 2000中运行查询时它工作.
但是SQL Server 2008中的相同查询会生成以下错误:
SQL Server阻止访问组件"Ad Hoc Distributed Queries"的STATEMENT"OpenRowset/OpenDatasource",因为此组件已作为此服务器的安全配置的一部分关闭.系统管理员可以使用sp_configure启用"Ad Hoc Distributed Queries"
我试图从我的Table数据导出到Excel通过T-SQL查询.经过一些研究,我想出了这个
INSERT INTO OPENROWSET ('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=G:\Test.xls;',
'SELECT * FROM [Sheet1$]')
SELECT *
FROM dbo.products
Run Code Online (Sandbox Code Playgroud)
当我执行上述查询时出现此错误
消息7302,级别16,状态1,行7无法为链接服务器"(null)"创建OLE DB提供程序"Microsoft.Jet.OLEDB.4.0"的实例.
所以通过互联网寻求解决方案,得到以下链接
在上面的链接中,他们说我们需要管理员在C盘 TEMP文件夹中创建文件夹,因为在文件夹中OPENROWSET创建了一些文件或文件TEMP夹
我在My Home PC中这样做,我是管理员.仍然得到同样的错误.
SQL SERVER详细信息
Microsoft SQL Server 2016(RC1) - 13.0.1200.242(X64)2016年3月10日16:49:45版权所有(c)Windows 10 Pro 6.3上的Microsoft Corporation企业评估版(64位)(Build 10586 :)
任何解决问题的指针都将受到高度赞赏
更新:我已经配置了Ad Hoc Distributed Queries和
执行以下查询
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'AllowInProcess', 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'DynamicParameters', 1
GO
Run Code Online (Sandbox Code Playgroud)
现在我收到了这个错误
消息7438,级别16,状态1,行7 32位OLE DB提供程序"Microsoft.Jet.OLEDB.4.0"无法在64位SQL Server上进行加载.
我有一个文本文件中的员工名单.
我不是一个一个地搜索每个名字,而是想搜索我的数据库一次,查找文本文件的所有名称.就像是:
select emplayeeID, Salary from employees where employee-name in "C:\myfile.txt"
Run Code Online (Sandbox Code Playgroud)
可能吗?如果是,那么它的SQL命令是什么?谢谢.