Ответ 1
declare @x INT = 1
PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record'
Хорошо, поэтому я искал ответ на это на Technet, но безуспешно.
Я просто хочу напечатать целочисленную переменную, объединенную с двумя переменными String.
Это мой код, который не запускается:
print 'There are ' + @Number + ' alias combinations did not match a record'
Кажется, что такая базовая функция, я не мог себе представить, что это невозможно в T-SQL. Но если это невозможно, просто скажите это. Кажется, я не могу найти прямой ответ.
declare @x INT = 1
PRINT 'There are ' + CAST(@x AS VARCHAR) + ' alias combinations did not match a record'
Числа более высокий приоритет, чем строки, поэтому, конечно, операторы +
хотят преобразовать ваши строки в числа перед добавлением.
Вы можете сделать:
print 'There are ' + CONVERT(varchar(10),@Number) +
' alias combinations did not match a record'
или используйте (довольно ограниченные) средства форматирования RAISERROR
:
RAISERROR('There are %i alias combinations did not match a record',10,1,@Number)
WITH NOWAIT
Вы не можете комбинировать строку символов и числовую строку. Вам нужно преобразовать число в строку с помощью CONVERT или CAST.
Например:
print 'There are ' + cast(@Number as varchar) + ' alias combinations did not match a record'
или
print 'There are ' + convert(varchar,@Number) + ' alias combinations did not match a record'
Вы можете попробовать это,
declare @Number INT = 5
print 'There are ' + CONVERT(VARCHAR, @Number) + ' alias combinations did not match a record'