我在使用导入和导出数据工具将数据从 Excel 导入到 SQL Server 时发生了一件奇怪的事情。
缺点是我可以在Excel中看到数据,但所有数据都没有导入。
我有一本 Excel 工作簿,其中包含一个电子表格。我可以看到列中的数据,一切看起来都很好。当我使用导入向导导入数据时,我可以看到列和预览数据,但执行导入时数据并未全部传输。没有错误,导入过程完成 - 它只是将一堆空值插入到表中。
这种情况似乎最常发生在数字上——假设我有三列,分别是名字、姓氏和身份证号码。我会得到所有的名字和姓氏,以及一些身份证号码。我找不到正在发生的事情的模式。
我以前发生过一次这种情况,我注意到在导入过程中有两个电子表格可供选择:DataImport 和 DataImport$ - 第一个电子表格会如上所述失败,第二个电子表格会完美导入。这次只有一个电子表格可供选择。
我主要在 64 位系统上使用 XLS 文档和 32 位导入向导,但我愿意尝试任何方法。
关于为什么有两个电子表格(有时)以及为什么此导入会失败的任何想法?
Dave
您的问题的答案可能涉及数据如何存储在 Excel 中。
我刚刚遇到了同样的问题。我有一列包含两种类型的值:数字和带破折号的数字。 (例如 51000 和 2009-00949)我需要将它们导入为 NVARCHAR 或 VARCHAR,但 SQL 导入向导 (SQL2005) 只会导入数字,而不导入带有破折号的数字,或者带有破折号的数字而不是数字,取决于第一个记录中的类型。未导入的值将在字段中具有“空”值,使我的记录无用。
我尝试使用 Excel 中的“格式|单元格”菜单选项(数字、文本、常规等)以及 SQL 中的各种映射选项(nvar、nvarchar、varchar、sqlvariant、float),但没有成功。
解决方案是使用 Excel 中的“数据|文本到列”选项,而不是使用单元格格式选项将数值存储为文本。当我在列上使用它时,数值(例如 51000)转换为数字存储为文本值(左上角出现绿色小三角形错误),带有破折号的数字仍保留为文本。我必须将数据保留为这种格式,并带有小绿色三角形错误,否则它将无法成功导入到 SQL。当列中的数据以此格式存储时,两种类型的列数据(数字和带破折号的数字)与其他记录数据正确导入,列中没有空值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)