¿Cómo concatenar números y cadenas para formatear números en T-SQL?

Tengo la siguiente función

ALTER FUNCTION [dbo].[ActualWeightDIMS]
(
    -- Add the parameters for the function here
    @ActualWeight int,
    @Actual_Dims_Lenght int,
    @Actual_Dims_Width int,
    @Actual_Dims_Height int
)
RETURNS varchar(50)
AS
BEGIN

DECLARE @ActualWeightDIMS varchar(50);
--Actual Weight
     IF (@ActualWeight is not null) 
          SET @ActualWeightDIMS = @ActualWeight;
--Actual DIMS
     IF (@Actual_Dims_Lenght is not null) AND 
          (@Actual_Dims_Width is not null) AND (@Actual_Dims_Height is not null)
          SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + @Actual_Dims_Width + 'x' + @Actual_Dims_Height;


     RETURN(@ActualWeightDIMS);

END

pero cuando intenté usarlo, recibí el siguiente error "Error de conversión al convertir el valor varchar 'x' al tipo de datos int". cuando uso la siguiente declaración select

select 
 BA_Adjustment_Detail.ID_Number [ID_Number],
 BA_Adjustment_Detail.Submit_Date [Submit_Date],
 BA_Category.Category [category],
 BA_Type_Of_Request.Request [Type_Of_Request],
 dbo.ActualWeightDIMS(BA_Adjustment_Detail.ActualWeight,BA_Adjustment_Detail.Actual_Dims_Lenght,BA_Adjustment_Detail.Actual_Dims_Width,BA_Adjustment_Detail.Actual_Dims_Height) [Actual Weight/DIMS],
 BA_Adjustment_Detail.Notes [Notes],
 BA_Adjustment_Detail.UPSCustomerNo [UPSNo],
 BA_Adjustment_Detail.TrackingNo [AirbillNo],
 BA_Adjustment_Detail.StoreNo [StoreNo],
 BA_Adjustment_Detail.Download_Date [Download_Date],
 BA_Adjustment_Detail.Shipment_Date[ShipmentDate],
 BA_Adjustment_Detail.FranchiseNo [FranchiseNo],
 BA_Adjustment_Detail.CustomerNo [CustomerNo],
 BA_Adjustment_Detail.BillTo [BillTo],
 BA_Adjustment_Detail.Adjustment_Amount_Requested [Adjustment_Amount_Requested]
from BA_Adjustment_Detail
inner join BA_Category 
on BA_Category.ID = BA_Adjustment_Detail.CategoryID
inner join BA_Type_Of_Request
on BA_Type_Of_Request.ID = BA_Adjustment_Detail.TypeOfRequestID

Lo que quiero hacer es que si el Peso real no es nulo, devuelva el Peso real para el "Peso real / DIMS" o use el Largo, Ancho y Altura Actual_Dims

Si es DIMS, entonces quiero formatear la salida para que sea LenghtxWidhtxHeight (15x10x4). ActualWeight, Adcutal_Dims_Lenght, Width y Height son valores int (enteros) pero la salida para "Peso real / DIMS" debe ser varchar (50).

¿Dónde me equivoco?

gracia

edit: el usuario solo puede elegir Peso o DIMS en la página ASP.net y si el usuario seleccionó DIMS, debe proporcionar Longitud, Ancho y Altura. De lo contrario, arrojará un error en la página ASP.net. ¿Debería preocuparme por el lado sql?

Respuestas a la pregunta(20)

Su respuesta a la pregunta