Ok, he buscado una respuesta a esto en Technet, sin éxito.
Solo quiero imprimir una variable entera concatenada con dos variables String.
Este es mi código, que no se ejecuta:
print 'There are ' + @Number + ' alias combinations did not match a record'
Parece una característica tan básica que no puedo imaginar que no sea posible en T-SQL. Pero si no es posible, dígalo. Parece que no puedo encontrar una respuesta directa.
                    
                        sql
                                sql-server
                                tsql
                                
                    
                    
                        Joel Coehoorn
fuente
                
                fuente

print 'There are ' + CAST(@Number AS NVARCHAR(100)) + ' alias combinations did not match a record'Respuestas:
declare @x INT = 1 /* Declares an integer variable named "x" with the value of 1 */ PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record' /* Prints a string concatenated with x casted as a varchar */fuente
Los números tienen mayor precedencia que las cadenas, por lo que, por supuesto, los
+operadores quieren convertir sus cadenas en números antes de sumar.Podrías hacerlo:
o utilice las funciones de formato (bastante limitadas) de
RAISERROR:RAISERROR('There are %i alias combinations did not match a record',10,1,@Number) WITH NOWAITfuente
printdeclaraciones, per-se. T-SQL es un lenguaje muy simple y bastante anticuado. En T-SQL, todas las entradas a un operador deben ser del mismo tipo.No puede combinar una cadena de caracteres y una cadena numérica. Necesita convertir el número en una cadena usando CONVERT o CAST.
Por ejemplo:
o
fuente
Verifique si ha establecido un valor inicial para los valores int y decimales que se imprimirán.
Esta muestra está imprimiendo una línea vacía
declare @Number INT print 'The number is : ' + CONVERT(VARCHAR, @Number)Y esta muestra está imprimiendo -> El número es: 1
declare @Number INT = 1 print 'The number is : ' + CONVERT(VARCHAR, @Number)fuente
Puedes probar este
declare @Number INT = 5 print 'There are ' + CONVERT(VARCHAR, @Number) + ' alias combinations did not match a record'fuente