将excel文件导入sql server时转换数据类型时出错

时间:2013-11-21 06:58:33

标签: sql sql-server

作为SQL初学者,我试图将数据从Excel导入到sql server中的表。我使用sql导入向导导入数据。由于向导总是将我的一些数字列defaut到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]

万分感谢!!

1 个答案:

答案 0 :(得分:0)

你可以这样做convert(nvarchar(255), @col)

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)
      ,CONVERT(NVARCHAR(255),[EmployeeNo] ) as new_converted_value
    FROM [dbo].[temp_ProjectImport]