我正在尝试将第一个表中的数据移动到第二个表,并转换某些数据类型。
我正在使用存储过程来完成此操作,但我一直收到错误。 这是错误消息
Msg 245, Level 16, State 1, Procedure sp_Load_Dim_Airports, Line 5
Conversion failed when converting the varchar value '39.63' to data type smallint.
请参阅下面我们需要转换为的数据类型。需要连接经度和纬度以形成一个名为LatLong的新列。
如何将数据从第一个表格转换并传输到第二个表格?那么我将如何连接第二个表中的列数少于第一个表?
修改:
这是我正在使用的proc但是我收到错误消息245,级别16,状态1,过程sp_Load_Dim_Airports,第5行转换失败,将varchar
值'39 .63'转换为数据类型smallint
ALTER PROC [dbo].[sp_Load_Dim_Airports]
AS
BEGIN
INSERT INTO [AIRPORTS-DM].dbo.Dim_Airports (AirportId, AirportName, City, Country, Altitude, Latitude, Longitude, TimeZone, LatLong)
SELECT * FROM DBO.Src_Airports
DECLARE @NegativeNumeric decimal (10,2)
DECLARE @Latitude decimal (10,2)
SELECT @NegativeNumeric = -1 * CAST (REPLACE(@NegativeNumeric ,'-','') AS DECIMAL (10,2))
SELECT CONVERT(Decimal (10,2), CONVERT(Varchar (50), @Latitude))
END
EXEC [dbo].[sp_Load_Dim_Airports]