作为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]
万分感谢!!
答案 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]