Tag: sql server

如何删除SQL Server中奇怪的Excel字符?

有一个奇怪的空白字符,我似乎无法摆脱偶尔显示从Excel导入时,我的数据。 显而易见,它是一个空白字符,但SQL Server将其视为一个问号(ASCII 63)。 declare @temp nvarchar(255); set @temp = 'carolg@c?am.com' select @temp 收益: ?carolg@c?am.com 我怎样才能摆脱空白而不摆脱真正的问号? 如果我查看每个“?”的ASCII码 实际上,我得到63个字符,其中只有一个是真正的问题标记。

在使用C#发送到SQL Server之前,将额外的列和值添加到excel文件中

我正在上传Excel文件并将数据插入到SQL Server中。 但问题是,在我发送Excel数据到SQL Server之前,我想在发送之前添加一个额外的列和值。 这是我试过的代码: using (OleDbConnection exel_con = new OleDbConnection(conString)) { exel_con.Open(); string sheet1 = exel_con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[0]["TABLE_NAME"].ToString(); DataTable dtExcelData = new DataTable(); //[OPTIONAL]: It is recommended as otherwise the data will be considered as String by default. dtExcelData.Columns.AddRange(new DataColumn[12] { new DataColumn("Full Name", typeof(string)), new DataColumn("Email Address", typeof(string)), new DataColumn("ID Type",typeof(string)), new DataColumn("ID Number", […]

Excel – SQL查询 – ##温度表

我正在尝试使用一个查询的结果创build一个全局临时表,然后可以将它作为一个表进行select,并进行多次操作,而不必一遍又一遍地重新处理数据。 这在SQLpipe理工作室中是完美的,但是当我尝试通过Excel查询来添加表时,表可以在那时被引用,但是它不会在tempdb数据库的临时表中创build。 我已经把它分解成一个简单的例子。 如果我在SQLpipe理工作室中运行这个,那么1的结果将按照预期返回,并且在临时表中创build表## testtable1 set nocount on; select 1 as 'Val1', 2 as 'Val2' into ##testtable1 select Val1 from ##testtable1 然后,我可以在该表上运行另一个select,即使是在不同的会话中,也可以按照您的预期进行。 例如 Select Val2 from ##testtable1 如果我不删除## testtable1,则在Excel中的查询中运行下面的内容将返回2的结果,如您所期望的那样。 Select Val2 from ##testtable1 但是,如果我直接在Excel中运行相同的Select … into ## testtable1查询,则正确返回1的结果,但不会创build该temptable。 如果我然后尝试运行 Select Val2 from ##testtable1 作为一个单独的查询,它的错误说“无效的对象名称”## testtable1“ 该表未列在SQLpipe理工作室的临时表中。 就好像在查询执行完成后在表上执行一个删除操作,尽pipe我没有调用drop。 我该如何解决这个问题?

基于参数dynamic创buildexcel文件

其任务是:基于SQL查询返回的数据,为每个客户单独生成自动定期报告,并将其另存为一个单独的名为customer_name + [YY-MM] .xlsx的 excel文件(或者为每个客户分配一个带有单独工作表的时间戳excel文件)。 客户ID可能会每个月有所不同,目标客户列表是由SQL查询生成的。 什么是最好的技术? 到目前为止研究: SSIS: Excel文件或标签的名称应在控制stream和数据stream任务中预定义,不能dynamic设置。 输出是非格式化的CSV(不好,但可以应付它)。 Excel:我可以将所有客户的批量数据embedded到excel中,但不能确定是否可以编写一个macros来获取唯一的客户,创build相应的选项卡并在每个客户端中放入相应的数据。 SSRS:订阅function在企业级被禁用 – 不能使用它:(即使不知道它接受像这样的dynamic参数。 我错过任何select吗? 或者也许有其他技术可用?

Excel数据连接可以locking数据库表吗?

如果我添加一个简单的Sql Server表格数据连接到Excel工作表,如果连接从未closures,它可以locking该表吗?

SQL Server 2008/64位 – 如何创build包括Excel在内的查询

我们在64位盒子上运行SQL Server 2008。 我们有一个请求来创build一个查询,该查询具有从Excel表中绘制数据的Where子句。 在伪代码中,查询可能如下所示: Select column1, column2, column3 From MyDatabase.MyTable Where column4 IN (Select all values from column 'A' in SubIDs.xls whose sheet name is 'SubIDs')

大型Excel文件导入SQL Server数据库

我有一个客户需要从一个大的Excel文件(72K行)中导入行到他们的SQL Server数据库。 该文件由系统的用户上传。 当我们尝试在用户上传的同时尝试上传和处理这些问题时,性能就成了问题。 现在我们把它保存到磁盘上,一个pipe理员拿起它,将它分成2K行,并通过一个上传工具逐一运行。 有没有一种更简单的方法来实现这一点,而不影响性能或超时?

用OLEDB读取Excel文件?

您好我正在阅读与Oledb的Excel文件(该文件有100000行)。 我必须快速阅读文件。 string conn; conn = ("Provider=Microsoft.ACE.OLEDB.12.0;" + ("Data Source=" + _filename + ";" + "Extended Properties=\"Excel 12.0;\"")); OleDbConnection oleDBCon = new OleDbConnection(conn); oleDBCon.Open(); DataTable dt = oleDBCon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); string excelsheetname = dt.Rows[0].ItemArray[2].ToString(); string SSQL = "SELECT * from [" + excelsheetname + "]"; OleDbDataAdapter oleDA = new OleDbDataAdapter(SSQL, conn); DataSet ds = new DataSet(); […]

OPENROWSET与Excel文件

我想执行简单的声明: SELECT * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0','Text;Database=C:\Temp\;','SELECT * FROM [test.csv]') 突然我今天早上收到这个消息: Msg 7308, Level 16, State 1, Line 1 OLE DB provider 'MICROSOFT.JET.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode. 它一直工作到今天早上! 这里是我的服务器规格:Windows 2008 R2 64位SQL Server 2008 64位 我已经安装了AccessDatabaseEngine_x64.exe。 Sql Server正在LocalService帐户下运行。 我已经设置每个人拥有“C:\ Temp”以及“C:\ Windows \ ServiceProfiles \ […]

通过存储过程从Excel导入数据

我想用SPinput我的表名,以便从excel表导入数据并加载到数据库。 但是,收到以下错误。 你能纠正它吗? 谢谢。 create proc Up_Export ( @Tablename as varchar(20) = null ) AS SET NOCOUNT ON begin INSERT INTO @Tablename –Receiving error over here, informs incorrect syntax near @tablename SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\..\..\..\packages\@Tablename.xls', @Tablename) set nocount off end