Tag: tsql openrowset

使用OPENROWSET问题将数据从SQL Server导出到Excel

我正在使用下面的脚本,并得到以下错误: 无法为链接服务器“(null)”创buildOLE DB提供程序“Microsoft.ACE.OLEDB.12.0”的实例。 EXEC SP_CONFIGURE 'show advanced options', 1; GO RECONFIGURE; EXEC SP_CONFIGURE 'Ad Hoc Distributed Queries', 1; GO RECONFIGURE; INSERT INTO OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=c:\CSV\testing.xlsx;', 'SELECT * FROM [Sheet1$]') select top 10 * from Emp2 我怎样才能解决这个问题? 我需要将数据导出到UNCpath中的 Excel文件。 请指导我如何实现它。 我再次尝试下面的脚本,但这次我得到了一个不同的错误: 无法为链接服务器“(null)”创buildOLE DB提供程序“Microsoft.Jet.OLEDB.4.0”的实例。 EXEC sp_configure 'show advanced options', 1 RECONFIGURE GO EXEC sp_configure 'ad hoc […]

Excel到SQL表错误消息7350

我正在使用这段代码将一个excel文件导入到一个sql表中 USE master GO sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO insert into memberform (id) SELECT * FROM OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\\test.xls;HDR=YES', 'select * from [Sheet1$]') 但是我得到错误: 消息7350,级别16,状态2,行1无法从链接服务器“(null)”的OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”>获取列信息。 有什么我应该首先参数化在SQL?

从openrowset混合types的SQL导入正确

我在Excel中有一列,我试图导入,它包括如下代码: 01166 1166 2354654765432 xx132 我使用IMEX = 1,一切都导入为TEXT,但是当我使用nvarchartypes将select分配给临时表时,具有长数字的代码变得不正确: 1001051 becomes 1.00105e+006 我试图投到bigint,但这使得代码在01166失去领先的0 这是我目前的查询: INSERT INTO #XTEMP SELECT DISTINCT (CASE ISNUMERIC([item_code]) WHEN 1 THEN CAST(CAST([item_code] AS BIGINT) AS nvarchar) ELSE CAST([item_code] AS nvarchar) END) FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0 Xml;HDR=YES;IMEX=1;Database=C:\path\file.xls', 'SELECT * FROM [sheet$]')