Я пытаюсь вставить внутрь значения ключа test_Master_Product (значения int), которые на самом деле являются nvarchar (50) из temp # Master_Product. Я пробовал либо с конвертировать, анализировать и приводить. Никто из них не работает. Причина, по которой я использовал nvarchar (50), заключалась в том, что в этой временной таблице были реальные значения, которые затем обновлялись значениями их ключей. Теперь мне нужно преобразовать эти значения в тип данных INT, потому что, даже если они nvarchar (50), они в действительности являются числами.
Спасибо за поддержку
INSERT INTO [dbo].[test_Master_Product]
([PNC_KEY]
,[MODEL_KEY]
,[GPH_PRODUCT_GROUP_KEY]
,[PREDECESSOR_KEY]
,[SUCCESSOR_KEY]
,[PRODUCED_FROM]
,[PRODUCED_UNTIL]
,[PACKAGE_HEIGHT]
,[PACKAGE_WIDTH]
,[PACKAGE_DEPTH]
,[SHIPPING_VOLUME]
,[ACTIVE]
,[SUPPLIER_ID]
,[PRODUCTION_BASE_MODEL_KEY]
,[PRODGROUP_KEY]
,[BRAND_KEY]
,[PS_STATUS_KEY]
,[INTRASTAT_CODE_KEY]
,[FUNCTION_KEY]
,[CLASS_KEY]
,[INSTALLATION_KEY]
,[TYPOLOGY_KEY]
,[PLATFROM_KEY]
,[MASTER_MODEL_KEY]
,[BASE_TEMPLATE_MODEL_KEY]
,[PROJECT_NAME_KEY]
,[INSERT_DATE]
,[UPDATE_DATE])
SELECT
[PNC_KEY]
,CAST([MODEL_KEY] AS int)
,CAST([GPH_PRODUCT_GROUP_KEY] AS int)
,CAST([PREDECESSOR_KEY] AS int)
,CAST([SUCCESSOR_KEY] AS int)
,[PRODUCED_FROM]
,[PRODUCED_UNTIL]
,[PACKAGE_HEIGHT]
,[PACKAGE_WIDTH]
,[PACKAGE_DEPTH]
,CAST([SHIPPING_VOLUME]AS decimal(9,6))
,CAST([ACTIVE] AS bit)
,CAST([SUPPLIER_ID] AS int)
,CAST([PRODUCTION_BASE_MODEL_KEY] AS int)
,CAST([PRODGROUP_KEY] AS int)
,CAST([BRAND_KEY] AS int)
,CAST([PS_STATUS_KEY] AS int)
,CAST([INTRASTAT_CODE_KEY] AS int)
,CAST([FUNCTION_KEY] AS int)
,CAST([CLASS_KEY] AS int)
,CAST([INSTALLATION_KEY] AS int)
,CAST([TYPOLOGY_KEY] AS int)
,CAST([PLATFROM_KEY] AS int)
,CAST([MASTER_MODEL_KEY] AS int)
,CAST([BASE_TEMPLATE_MODEL_KEY] AS int)
,CAST([PROJECT_NAME_KEY] AS int)
,[INSERT_DATE]
,[UPDATE_DATE]
FROM [temp#Master_Product]
Msg 8115, Level 16, State 8, Line 659
Arithmetic overflow error converting nvarchar to data type numeric.
The statement has been terminated.