2011-07-19 8 views
6

Cuando intento imprimir una línea con int y nvarchar en una sola línea, aparece un error. Aquí está la totalidad de mi código.Problema de conversión de instrucción de impresión TSQL

DECLARE @COUNT INT, @CONST INT 
SET @COUNT = 0 
SET @CONST = 12 

WHILE(@COUNT<12) 
BEGIN 
    SET @COUNT = @COUNT + 1 
    PRINT @COUNT + N' times ' + @CONST + N' is ' + @COUNT*@CONST 
END 

El error que consigo es:

Msg 245, nivel 16, estado 1, línea 8 no conversión al convertir 'tiempos' el valor nvarchar a tipo de datos int.

Puedo imprimir 'int' a nvarchar solo encontrarlo por su cuenta, pero cuando los combino me sale este error. ¿Estoy combinándolos incorrectamente?

estoy usando Microsoft SQL Management Studio

Respuesta

9

Debe CAST sus variables como nvarchar primera:

DECLARE @COUNT INT, @CONST INT 
SET @COUNT = 0 
SET @CONST = 12 

WHILE(@COUNT<12) 
BEGIN 
    SET @COUNT = @COUNT + 1 
    PRINT CAST(@COUNT as nvarchar) + N' times ' + CAST(@CONST as nvarchar) + N' is ' + CAST(@COUNT*@CONST as nvarchar) 
END 
+0

Gracias, Joel. Buena atrapada. –

+0

Ahh, tenía mis sospechas sobre el casting. Gracias :] – Johannes

Cuestiones relacionadas