gpt4 book ai didi

sql-server - 从 Excel 到 SQL Server 的数据导入无法导入所有数据

转载 作者:行者123 更新时间:2023-12-01 17:45:00 26 4
gpt4 key购买 nike

使用导入和导出数据工具将数据从 Excel 导入到 SQL Server 时,发生了一件奇怪的事情。

缺点是我可以在 Excel 中看到数据,但所有数据都不会导入。

我有一本 Excel 工作簿,其中包含一个电子表格。我可以看到列中的数据,一切看起来都很好。当我使用导入向导导入数据时,我可以看到列和预览数据,但执行导入时数据并未全部传输。没有错误,导入过程完成 - 它只是将一堆空值插入表中。

这种情况似乎最常见于数字 - 假设我有三列,分别是名字、姓氏和 ID 号。我会得到所有的名字和姓氏,以及一些身份证号码。我找不到发生的事情的模式。

我以前也遇到过这种情况,我注意到在导入过程中有两个电子表格可供选择:DataImport 和 DataImport$ - 第一个会如上所述失败,第二个会完美导入。这次只有一个电子表格可供选择。

我主要在 64 位系统上使用 XLS 文档和 32 位导入向导,但我愿意尝试任何方法。

对于为什么有两个电子表格(有时)以及为什么此导入会失败有什么想法吗?

戴夫

最佳答案

您的问题的答案可能涉及数据在 Excel 中的存储方式。

我刚刚遇到了同样的问题。我有一列包含两种类型的值:数字和带破折号的数字。 (例如 51000 和 2009-00949)我需要将它们导入为 NVARCHAR 或 VARCHAR,但 SQL 导入向导 (SQL2005) 只会导入数字,而不导入带有破折号的数字,或者带有破折号的数字而不是数字,取决于第一个记录中的类型。未导入的值将在字段中具有“空”值,使我的记录无用。

我尝试使用 Excel 中的“格式|单元格”菜单选项(数字、文本、常规等)以及 SQL 中的各种映射选项(nvar、nvarchar、varchar、sqlvariant、float),但没有成功。

解决方案是使用 Excel 中的“数据|文本到列”选项,而不是使用单元格格式选项将数值存储为文本。当我在列上使用它时,数值(例如 51000)转换为数字存储为文本值(左上角出现绿色小三角形错误),带有破折号的数字仍保留为文本。我必须将数据保留为这种格式,并带有小绿色三角形错误,否则它将无法成功导入到 SQL。当列中的数据以此格式存储时,两种类型的列数据(数字和带破折号的数字)与其他记录数据正确导入,列中没有空值。

关于sql-server - 从 Excel 到 SQL Server 的数据导入无法导入所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884934/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com