首页 > 解决方案 > 导入带前导零的数据 - SQL Server

问题描述

我正在尝试将数据导入表中。我正在做一个批量插入。我使用 CREATE 语句创建了表,其中所有字段都是 nvarchar(max)。我不明白为什么在导入完成后,带有前导零的数据已更改为科学计数法。为什么它不保留为文本并保留前导零?

标签: sql-serverbulkinsertleading-zero

解决方案


我建议您定义您想要的零的数量,然后进行更新。这是一个有 10 个零的示例。

create table #leadingZeros(uglynumber nvarchar(max),handsomenumber nvarchar(max),nicenumber nvarchar(max))
INSERT INTO #leadingZeros VALUES(1000000,0000123,0500000)

SELECT * FROM #leadingZeros
--OUTPUT:
--uglynumber    handsomenumber  nicenumber
--1000000   123     500000
UPDATE #leadingZeros SET 
uglynumber=RIGHT('0000000000'+uglynumber,10)
,handsomenumber=RIGHT('0000000000'+handsomenumber,10)
,nicenumber=RIGHT('0000000000'+nicenumber,10)

SELECT * FROM #leadingZeros
--OUTPUT
--uglynumber    handsomenumber  nicenumber
--0001000000    0000000123  0000500000

推荐阅读