我目前正在开发一个C#程序,它需要一个巨大的Excel工作表(约14,300行,90列),并需要将其插入数据库(SQL Server 2014)。 用户可以通过数据库search不同的产品,并最终为客户提供报价。 插入我成功地使用SQLBulkcopy插入excel行到登台表。 问题是,我想使用一个合并语句来合并我的临时表和真实表,因为随着时间的推移,可能有多个相同文件的上传。 所有的SQL合并例子我发现看起来像这样: MERGE INTO maintable as Target USING stagingtable as Source ON Target.columnA = Source.columnA WHEN MATCHED THEN UPDATE SET Target.Name = Source.Name WHEN NOT MATCHED THEN INSERT (columnA, Name) VALUES (Source.columnA, source.Name) 声明将工作,但问题是,我的Excel文件有90列。 有没有办法一次更新整行,或者我必须更新每一行的90列?
我有一个csv文件,有这样的数据:“100”,“220”,“约翰”,“弗兰克” 所以分隔符应该是“,”如何可以导入到SQL Server使用例如导入和导出向导的文件?
我正在devise一个SSIS包来将数据从一个SQL查询导出到Excel文件中,但是excel文件中的列名在第5行。 我已经创build了一个工作stream任务,并添加了一个OLE DB源和一个Excel目标,还有一个连接pipe理器。 Excel连接pipe理器有一个“第一行有列名”checkbox(见下文) – 我找不到另一种方法将其设置为5(即第五行)。 我已经做了一些研究,并build议在Excel Destination的CustomerProperties中的OpenRowset参数中添加一些公式。 上面的工作是当列名在Excel表的第一行时,但我需要做的是在第五行设置列名; 因为前四行用于标题:
我想要使用TSQL将SQL服务器数据导入Excel。 在Excel中,我可以完美地使用SQL代码来检索表格。 但是,当我写TSQL代码而不是SQL它给了我“没有任何回顾”。 Excel是否支持TSQL代码? 如果是这样,我怎么能从SQL服务器导入数据到Excel? 我有这个示例代码顺便说一句。 use GOPLUS; DECLARE @kayitNo INT; DECLARE @CardRefOfItem INT; DECLARE @CardRefOfPrice INT; DECLARE @urunKodu VARCHAR(100); DECLARE @urunAdi VARCHAR(100); DECLARE @fiyat1 INT; DECLARE @fiyat2 INT; DECLARE @fiyat3 INT; DECLARE @numb INT; DECLARE @kayitSayisi INT = (SELECT COUNT(*) FROM LG_001_ITEMS); DECLARE @sayac INT = 0; CREATE TABLE #UrunListesis( Sira INT NOT NULL […]
很抱歉如果问题已经被问到。 但经过大量的研究,我张贴这个。 我开发了一个将excel数据导入到SQLSERVER数据库的SSIS包。 如果我使用32位运行时在本地机器上运行软件包,软件包工作正常。 但是我得到了要求在64位的生产服务器上运行软件包的时间。 为此,我试图通过将属性运行64位运行时设置为TRUE来运行64位软件包但它失败,出现以下错误。 仅供参考,我的本地机器具有32位oledb驱动程序的64位操作系统。 生产服务器有64位操作系统与32位oledb驱动程序。 但是,如果我的机器上安装了32位和64位OLEDB驱动程序。 我怎样才能使我的SSIS包使用64位驱动程序,而不是32位的。 当我试图获得64位Excel驱动程序时,我发现Microsoft的OLE DB提供程序的Jet和Jet ODBC驱动程序仅在32位版本中可用。 我们不能以64位模式运行它们。 资料来源: http : //www.connectionstrings.com/using-jet-in-64-bit-environments/ 错误: [Excel来源[34]]错误:SSIS错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接pipe理器“Excel连接pipe理器”失败,错误代码0xC00F9304。 在此之前可能会发布错误消息,更多关于为什么AcquireConnection方法调用失败的信息。
如何通过Excel VBA执行特殊的SQL Server存储过程? 特别的,因为它不像这个过程那样返回行: select * from tab1 如何执行我们所说的编写报告的程序,如下所示: select * into tab2 from tab1 它不返回任何行。 我正在使用这个VBA代码: Dim cnn As Object Set cnn = CreateObject("ADODB.Connection") Dim cmd As Object Set cmd = CreateObject("ADODB.Command") Dim rs As Object Set rs = CreateObject("ADODB.Recordset") Dim ConnectionString As String cnn.ConnectionString = "driver={SQL Server};server=MYSERVERNAME;Database=MYDATABASE;Trusted_Connection=yes;" cnn.Open Sql = "EXEC [dbo].[Procedure_make_report] 'param1'" […]
这是我的问题。 我感到沮丧,SSIS无法导出一个Excel文件没有写列名到第一列。 不过,我不得不这样做,因为这是我们现在正在使用的工具,但是我还需要导出一个Excel文件,其前三行是为标题和字幕保留的,然后才能正确加载表格(列名和所有)。 那我该怎么做呢? 我发现的所有关于如何删除所有行的参考(以及为什么你不应该这样做)。 谢谢
我们有一些非常老的2003年的工作簿,由现在离开这个部门的人devise。 我们需要将它们转换为Excel 2013,但是当我们打开它们并刷新数据透视表时,会出现一个向导,要求input数据源? 透视表链接到每个表的特定“连接”。 我已经看过这些,连接似乎是“OLAP查询”,其中之一是如下: Provider=MSOLAP.5;Persist Security Info=True;Initial Catalog=OCWCube;Extended Properties="Client Cache Size=25";Auto Synch Period=10000; CREATECUBE=CREATE CUBE [OCWCube] ( DIMENSION [Target], LEVEL [All] TYPE ALL, LEVEL [Target], DIMENSION [WeekCommencing], LEVEL [All] TYPE ALL, LEVEL [WeekCommencing], DIMENSION [DocType], LEVEL [All] TYPE ALL, LEVEL [DocType], DIMENSION [Team], LEVEL [All] TYPE ALL, LEVEL [Team], MEASURE [Sum Of CountGuid] FUNCTION […]
我已经设置了一个自动作业来运行Microsoft SQL Server上的查询/报告。 作业运行良好,并产生正确的数据。 但是,为了使自动查询将所有报告转移到Excel电子表格并将其保存到我的文档中(如果这甚至可能),我无法使用该语法。 查询/报告在一夜之间运行,这必须是自动的和作业的一部分。 谢谢!
我一直在撞墙,试图找出答案。 我已经设置了两个连接pipe理器来连接到Excel文件中的两张表。 每个用于将数据从SQL DB导出到工作表。 它一直运行良好,直到昨天晚上。 现在我得到的错误: =================================== 包validation错误(包validation错误) =================================== 将导出许可的项目导出到Excel [Excel Dest AllData [293]]时出错:SSIS>>错误代码DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法调用连接pipe理器“Excel连接pipe理器”失败,错误代码0xC0202009。 在此之前可能会发布错误消息,更多关于为什么AcquireConnection方法调用失败的信息。 导出已批准的项目到Excel时出错[SSIS.Pipeline]:Excel Dest AllData未通过validation并返回错误代码0xC020801C。 将批准的项目导出到Excel时出错[SSIS.Pipeline]:一个或多个组件validation失败。 导出已批准项目到Excel时出错:任务validation期间出现错误。 错误包[连接pipe理器“Excel连接pipe理器”]:SSIS错误代码DTS_E_OLEDBERROR。 发生OLE DB错误。 错误代码:0x8007007E。 OLE DBlogging可用。 源:“Microsoft OLE DB服务组件”Hresult:0x8007007E描述:“无法find指定的模块”。 (Microsoft.DataTransformationServices.VsIntegration) 计划地点: 在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions,ProjectItem startupProjItem,DataTransformationsProjectConfigurationOptions选项)上的Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger(Int32标志,IOutputWindow outputWindow,DataTransformationsProjectConfigurationOptions选项) 在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchActivePackage(Int32 launchOptions) 在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions,DataTransformationsProjectConfigurationOptions选项) 在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.Launch(Int32 launchOptions,DataTransformationsProjectConfigurationOptions选项) 我发现这个答案: Package Validation Errorbuild议将Run64Bits更改为FALSE 。 我这样做,仍然得到同样的错误。 我还find了一个答案(尽pipe我不记得链接),它说在连接pipe理器上将DelayValidation更新为TRUE 。 我也这样做,仍然得到相同的错误。 然后我发现这个指定的模块找不到。 。 。 但是现在已经有5年的时间了,说的是卸载VS2012造成的。 […]