Tag: openrowset

在SQL导入“NULL”行中导入excel

我有一个存储过程,导入不同格式的工作簿到数据库表,对他们工作,然后删除表。 这是填充查询。 SELECT IDENTITY(INT,1,1) AS ID INTO #test101 FROM OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=WorkBook.xls',[WorkSheet$]) 一些电子表格似乎在底部创build一个空行。 我如何导入和忽略空行?

将Excel数据导入到SQL Server

我想从excel文件中插入数据到SQL Server ..我用下面的SQL语句: SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=Y:\Path.xls', 'SELECT * FROM [Sheet$]') 但我收到以下错误 – 消息7403,级别16,状态1,行1 OLE DB提供程序“Microsoft.Jet.OLEDB.4.0”尚未注册。

Microsoft.ACE.OLEDB.12.0无法执行查询

我有这个SQL代码。 它更新Excel文件中的特定单元格。 SET @cmd = 'UPDATE OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0;Database=C:/sompath/file.xls;HDR=NO;IMEX=0;'',''SELECT F1,F2,F3,F4,F5,F6,F7,F8,F9 FROM [Sheet1$]'') set [F1] = ''Hello World'' where [F1] = ''<field1>''' EXEC(@cmd) 这段代码在32位成功执行,但在64位服务器(MSSQL Server 2012)中失败。 我在64位得到这个错误: OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "No value given for one or more required parameters.". Msg 7320, Level 16, State 2, Line 1 Cannot execute the […]

SQL Server – 清除和填充Excel

我需要将数据从SQL Server 2014推送到Excel工作表中。 由于纸张不会改变,我需要先清理纸张。 我的查询是在底部。 注 – 由于这种性质,我不能简单地将数据拉到Excel中。 UPDATE似乎locking了Excel文件。 我可以多次运行插入没有问题,但更新防止进一步的操作实际上更改文件。 运行更新:成功,工作表被清除 运行INSERT: 失败 SQL执行时没有错误,但文件未被填充 码: UPDATE OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Workspace\WorkBook01.xlsx', 'SELECT col_01, col_01 FROM [Sheet1$]') SET col_01 = NULL, col_02 = NULL WHERE col_01 IS NOT NULL; INSERT INTO OPENROWSET ('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Workspace\WorkBook01.xlsx', 'SELECT col_01, col_02 FROM [Sheet1$]') SELECT col_01, col_01 FROM [dbo].[table_data]; 编辑 – […]

OPENROWSET查询的语法

为了获取2013-03-04的数据,以下SQL代码的正确语法是什么? SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 8.0;Database=C:\Users\SQL Server\DataInput\Info.xlsm;' , 'SELECT * FROM [Index_Info$] where [Index_Info_Last Fixed Date] = 2013-03-04 '); 在普通的SQL查询中,variablesdate应该包含在两个''之间,但是写'2013-03-04'查询返回: Incorrect syntax near '2013'.

使用SQL Server 2005导入Excel 2007文件

我有一个大约301808行和2列的Excel 2007文件。 我试图使用SSIS导入,但不能使用2007年的Excel。 然后我决定尝试在SQL Server中创build一个链接服务器,按照以下说明操作: 在SQL Server Management Studio中,展开对象资源pipe理器中的服务器对象。 用鼠标右键单击链接服务器,然后单击新build链接的服务器。 在左窗格中select常规页面,然后按照下列步骤操作: 在第一个文本框中键入链接服务器的任何名称。 select其他数据源选项。 在提供程序列表中单击Microsoft Jet 4.0 OLE DB提供程序。 在产品名称框中键入Excel作为OLE DB数据源的名称。 在“数据源”框中,键入Excel文件的完整path和文件名。 在提供程序string框中,为Excel 2002,Excel 2000或Excel 97 – 工作簿键入Excel 8.0。 单击确定以创build新的链接的服务器。 从这里: http : //support.microsoft.com/kb/306397/EN-US 然而,这些指令只涵盖了以前的excel文件,而不是2007年,所以我查了2007年的连接string,并且在链接服务器的设置中使用了Excel 12.0而不是Excel 8.0: 提供程序:Microsoft Office 12.0 Access数据库引擎OLE DB 提供商产品名称:Excel数据来源:C:\ Documents and 设置\用户名\桌面\主\ FilesIns \ MyExcelFile.xlsx提供程序 string:Excel 12.0 位置: 目录: 然后我得到这个错误: 链接服务器“EXCEL_MY_FILE”的OLE DB提供程序“Microsoft.ACE.OLEDB.12.0”不包含“Report […]

SQL OPENROWSET与Excel

我试图从Excel电子表格中读取数据到SQL中,但由于某些原因,某些字段显示为NULL,即使电子表格中的数据在特定的列/行(在这种情况下,它是一个数字)。 所有其他有文字的列/行都显示OK。 这是我正在使用的查询 select * from OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=G:\XLS\ACK.xls', [ACK$]) 我正在使用SQL Server Management Studio 2005来运行查询。 任何想法/build议为什么发生这种情况? 谢谢。

openrowset sql导出数据为excel(dynamic列名称)

我想从sql导出数据到Excel文件。 我能够将数据导出到预定义的文件,但我正在尝试创build一个文件并将数据导出到该文件。 我正在执行一个存储过程,每次都返回不同的列,我想将结果导出到Excel文件中并通过电子邮件发送。 我怎样才能做到这一点?

SQL JOIN在具有特殊字符和前导零的varchar上

我在joinvarchar列时遇到问题。 我将通过产品代码更新Excel数据中的SQL数据,但是Twr_Kod是varchar并且它是与Excel数据连接的唯一方法。 当前导零时,也有转换为varchar的问题。 select CDN.Towary.Twr_Kod, excel.Twr_Kod from CDN.Towary left join openrowset('Microsoft.ACE.OLEDB.12.0', Excel 8.0;Database=C:\excel\towary.xlsx;', 'select * from [Arkusz1$]') excel on cast(CDN.Towary.Twr_Kod as varchar) = cast(excel.Twr_Kod as varchar) 我知道这是不是一个好的解决schemejoin到varchar列,但它是必要的,所以请帮助为什么演员不转换。

OPENROWSET或OPENDATASOURCE在远程服务器的文件系统上从.xlsx或.csv文件获取数据的示例

大量的例子展示了如何使用OPENROWSET和OPENDATASOURCE打开对远程SQL服务器上的表的查询,并从其他服务器上的文件中获取数据。 不幸的是,他们没有一个告诉我如何做我需要做的具体的事情,这是使用这些命令之一来获得一个.csv或.xlsx Excel文件从远程服务器使用服务器的IP地址和Windowslogin的地方服务器没有安装SQL Server实例 – 只有IIS7或8。 如果微软文档没有忽略如何以最可能的方式使用他们的工具的基本例子,那将是非常好的。 尝试40多种不同的参数列表组合,并不需要真正的智能:这只是一种低效的浪费时间。 开发人员有更重要的事情要做,而不是浪费时间来发现一些“秘密知识”的秘诀,这个秘诀实际上只是一个没有正确logging的命令参数变体,并假装这是聪明的事情。 因此,为了减轻我的哲学焦虑,有人可以提供一个例子,说明如何使用OPENROWSET或OPENDATASOURCE从.csv文件或Excel电子表格中使用远程服务器IP地址XXX.XXX.XXX.XXX获取/select内容,一个端口号(如果应该包括的话),文件系统path正确地附加到命令或包含在命令中,以及正确安排用户名和密码参数。 远程服务器上没有SQL服务器实例 – 只有IIS和带有Windows身份validation的网站。 如果你有一个在远程服务器上与SQL服务器实例一起工作的例子,那么这样做(尽pipe我认为REMOTEDATASOURCE的一些例子已经包含了这个例子),但是我真的想要一个例子,我不必拥有一个SQL服务器实例在远程Web服务器上。 我知道你可以使用链接服务器,但有一些额外的行李放在远程服务器上,包含要访问的文件,在我的情况下,包含excel或.csv文本文件的服务器甚至没有SQL Server它的实例 – 只有IIS和一个网站。 (另外 – 有人可以确认您是否可以使用所需的文本数据文件在远程服务器上使用没有SQL Server或其他数据库服务器实例的链接服务器?是仅链接数据库服务器还是链接服务器,远程服务器可以只是一个窗口和Web服务器上没有安装SQL服务器?) 这个例子很方便,但是不告诉我SERVERPROPERTY('MachineName') AS nvarchar(128))可以包含一个没有SQL服务器实例的远程windows服务器的IP地址,而不是访问文本文件。 这个例子很接近,但在post里似乎没有一个积极的结果,也没有涉及到文本文件 – 只有一个数据库查询,所以远程系统安装了SQL服务器? SELECT * FROM OPENROWSET('PACISOleDb', '192.168.200.172';'admin';'admin', 'SELECT * FROM DB') 现有的例子是好的,但没有多大帮助: SELECT * FROM OPENROWSET('SQLNCLI', 'DRIVER={SQL Server};SERVER=YourServer;UID=UserID;PWD=Password', 'select * from sys.sysobjects') ( 来源 ) SELECT ContactName, CompanyName, ContactTitle […]