【发布时间】:2013-11-21 06:58:32
【问题描述】:
作为一名 SQL 初学者,我正在尝试将数据从 Excel 导入到 sql server 中的表中。我使用 sql 导入向导导入了数据。由于向导总是将我的一些数字列默认为 nvarchar 并且不允许我在映射中更改它,我计划将数据导入临时表,然后使用 INSERT 和 CAST 函数将数据传输到永久目标表. 但是,在进行插入时,出现“将数据类型 nvarchar 转换为数字时出错”的错误。谁能告诉我为什么以及如何解决这个问题?这是我的代码:
INSERT INTO [DatabaseA].[dbo].[mstr_Project]
([Project_Start_Year]
,[Project_Name]
,[Client_Name]
,[Client_Revenue_in_Millions]
,[Client_Employee_Number])
SELECT [ProjectStartYear]
,[ProjectName]
,[ClientName]
,CAST([ClientRevenuesInMillions] AS NUMERIC)
,CAST([EmployeeNo] AS NUMERIC)
FROM [dbo].[temp_ProjectImport]
谢谢一百万!!
【问题讨论】:
-
在您的 Excel 文件中查找 ClientRevenuesInMillions(或任何其他失败的列)包含字母字符的任何实例。错误告诉您究竟出了什么问题,这些列中的某些值无法转换为数字。
-
我有问题的数字列都是空的,没有值。我想这就是 Excel 认为它们是基于列标题的 nvarchar 的原因。我怎样才能让 Excel 认为它们实际上是数字,但现在没有值?
标签: sql sql-server