【发布时间】:2014-08-12 13:49:08
【问题描述】:
我将下一个标识值分配给一个变量并将其连接到一个字符串变量。但它给了我错误:
将 varchar 值“XY-21”转换为数据类型 int 时转换失败。
流程如下:
ALTER PROCEDURE [dbo].[SPInsertNewDetail]
(
@MLNo varchar(20)= null,
@MCL varchar(20)= null, --Suppose it has value XY-
@MCCL VARCHAR(20) OUTPUT
)
AS
DECLARE @Next_Id int
SELECT @Next_Id = IDENT_CURRENT('New_Master') + IDENT_INCR('New_Master') //Suppose it is 21
PRINT @Next_Id
SET @MCCL = @MCL + cast(@Next_Id as varchar)
PRINT @MCCL
INSERT INTO New_Master
(MCCL, MLNo)
VALUES (@MCCL, @MLNo)
PRINT @MCCL
RETURN @MCCL
当我运行程序时,它返回 @MCCL 为 null 但表具有正确的值。
【问题讨论】:
-
问题说从
VARCHAR转换为INT但代码说从INT转换为VARCHAR。New_Master表中MCCL列的数据类型是什么? -
@MCL= NULL,你在任何地方设置它吗?或者调用 sproc 时会给出什么值? -
@VladimirOselsky,它是 varchar。
-
@NickyvV 我没有设置为空
标签: sql sql-server sql-server-2008 sql-server-2008-r2