Ok, j'ai donc cherché une réponse à cela sur Technet, en vain.
Je veux juste imprimer une variable entière concaténée avec deux variables de chaîne.
Ceci est mon code, ça ne marche pas:
print 'There are ' + @Number + ' alias combinations did not match a record'
Cela ressemble à une telle fonctionnalité de base, je ne pouvais pas imaginer que ce ne soit pas possible dans T-SQL. Mais si ce n'est pas possible, dites-le-moi s'il vous plaît. Je n'arrive pas à trouver une réponse directe.
declare @x INT = 1
PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record'
Les nombres ont priorité plus élevée que les chaînes. Bien entendu, les opérateurs +
veulent convertir vos chaînes en nombres avant de les ajouter.
Vous pourriez faire:
print 'There are ' + CONVERT(varchar(10),@Number) +
' alias combinations did not match a record'
ou utilisez les possibilités de formatage (plutôt limitées) de RAISERROR
:
RAISERROR('There are %i alias combinations did not match a record',10,1,@Number)
WITH NOWAIT
Vous ne pouvez pas combiner une chaîne de caractères et une chaîne numérique. Vous devez convertir le nombre en chaîne en utilisant soit CONVERT, soit CAST.
Par exemple:
print 'There are ' + cast(@Number as varchar) + ' alias combinations did not match a record'
ou
print 'There are ' + convert(varchar,@Number) + ' alias combinations did not match a record'
Vérifiez si vous avez défini et valeur initiale pour les valeurs int et décimales à imprimer.
Cet exemple imprime une ligne vide
declare @Number INT
print 'The number is : ' + CONVERT(VARCHAR, @Number)
Et cet exemple est en cours d'impression -> Le numéro est le suivant: 1
declare @Number INT = 1
print 'The number is : ' + CONVERT(VARCHAR, @Number)
Vous pouvez essayer celui-ci,
declare @Number INT = 5
print 'There are ' + CONVERT(VARCHAR, @Number) + ' alias combinations did not match a record'