SQL Server автоматически преобразует данные из одного типа данных в другой.Это неявное преобразование.В вашем скрипте есть процесс с разными типами (varchar и bigint).Бигинт - это точный числовой тип.«Символьные выражения, которые преобразуются в точный числовой тип данных, должны состоять из цифр, десятичной точки и необязательного плюса (+) или минуса (-). Пустые пробелы игнорируются. Разделители запятых, такие как разделитель тысяч в 123 456,00, не допускаются в строке. "(см. https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-type-conversion-database-engine ссылка.)
Вы должны использовать явное преобразование для принудительного применения. Неявное преобразование не происходит автоматически.Такие как функция CAST.
Выберите один из них в зависимости от типа данных столбца RegistrationFee в следующих выражениях.
'fee_' + CAST(@ID AS NVARCHAR(25))
'fee_' + CAST(@ID AS VARCHAR(25))
'fee_' + CAST(@ID AS CHAR(25))
'fee_' + CAST(@ID AS NCHAR(25))
- максимальное значение Bigint составляет «9 223 372 036 854 775 807», в котором 25 символов.