我有一个存储过程在一个图案中插入数据,转换失败
DECLARE @I INT = 1
DECLARE @ID INT = 0
DECLARE @PackID VARCHAR(50)
SELECT @PackID = MAX(PackID)
FROM tblPacks
WHERE PackID LIKE 'PK%'
IF(@String = 'Packs')
BEGIN
WHILE @I <= @Count
BEGIN
IF @PackID IS NULL
BEGIN
SET @I = @I + 1
SET @ID = @ID + 1
INSERT INTO tblPacks (T_ID, BatchNumber, PackID, Status, BlistersCount)
VALUES (@T_ID, @BatchNumber,
'PK'+ CAST(@ID as VARCHAR(50)), 0,
(SELECT NumberOfBlistersInEachPack
FROM tblPackDetails
WHERE T_ID = @T_ID AND BatchNumber = @BatchNumber))
END
ELSE
BEGIN
SET @I = @I + 1
error :- SELECT @ID = (SELECT MAX(PackID) FROM tblPacks)
SET @ID = @ID + 1
INSERT INTO tblPacks (T_ID, BatchNumber, PackID, Status, BlistersCount)
VALUES (@T_ID, @BatchNumber,
'PK'+ CAST(@ID as VARCHAR(50)), 0,
(SELECT NumberOfBlistersInEachPack
FROM tblPackDetails
WHERE T_ID = @T_ID AND BatchNumber = @BatchNumber))
END
END
END
END
它是否显示错误:
Conversion failed when converting the varchar value 'PK3' to data type int.
如果packid为null,那么它应该是'PK1',如果它有一些数据,那么它会取最大值,然后它应该增加'1'。我应该在哪里修改我的代码以摆脱此错误?
的
SUBSTRING
最大在'table' tblPacks是什么'datatype'的'column' PackID? – AbhishekVarchar数据类型@Abhishek –