将 Excel 导入 SQL 时保留前导零

use*_*461 5 sql sql-server excel application-settings

我的办公室使用 Excel 准备数据,然后将其导入 SQL 数据库。但是,我们一直遇到以下错误。

当从一台计算机导入数据时,它会丢失所有前导零。但是,当从另一台计算机导入它时,它可以完美导入。

前导零的一个示例是我们的商品编号需要格式化为“001, 002, 003,... 010, 011, 012,... 100, 101, 102, ect”。

1)excel文件存储在服务器上,因此文件没有区别。2) 如果用户交换工作站,结果保留在计算机上,而不随用户一起切换。3) 数据格式为文本。它已从“数据”选项卡和“格式单元格”中格式化为文本。

Excel 中是否有特定于计算机而非电子表格的设置会影响数据导出?或者是否有非 Excel 特定设置会导致此问题?

Cha*_*ins 0

不确定在将数据插入数据库之前填充数据有什么好处......(占用更多空间,搜索速度更慢等)。听起来你正在格式化它以进行输出(?),这可能在其他地方更有效地完成。

但无论如何——这里有一些关于 SELECT (sql) 语句的想法:

RIGHT(1000 + [excel field], 3)
Run Code Online (Sandbox Code Playgroud)

或者另一个是

REPLICATE('0', 3 - LEN([excel field])) + [excel field]
Run Code Online (Sandbox Code Playgroud)

您可以对 Excel 字段本身(在导入之前)执行的操作是在其前面加上'(撇号)。请注意,如果您0007在 Excel 中键入,它会将其更改为7,但如果您键入'0007,它将保留前导零。