存储过程 - 将数据类型 varchar 转换为数字时出错

Stored procedure - Error converting data type varchar to numeric

当 运行 一个简单的存储过程时,我收到此错误,坦率地说,我不知道为什么。

Msg 8114, Level 16, State 5, Procedure PROC_TEST, Line 15
Error converting data type varchar to numeric.

列:

知道为什么吗?

这是存储过程:

CREATE PROCEDURE [xxxxxx].[PROC_TEST] 
AS
BEGIN    
    SET NOCOUNT ON

    DECLARE
          @id NUMERIC(19,0),
          @login VARCHAR(100);

    DECLARE user_cursor CURSOR       <<----- Line 15
    FOR
       SELECT 
           SI_ID, SI_LOGINID 
       FROM SI_USER 
       WHERE SI_COMPANYID = 123

    OPEN user_cursor

    FETCH NEXT FROM user_cursor into @id, @login

    WHILE @@FETCH_STATUS = 0 
    BEGIN
          PRINT @id + ', ' + @login

          FETCH NEXT FROM user_cursor into @id, @login
    END

    CLOSE user_cursor
    DEALLOCATE user_cursor
END

SQL 错误行引用不准确。 错误似乎是这一行:PRINT @id + ', ' + @login

尝试PRINT CONVERT(varchar, @id) + ', ' + @login