我正在使用存儲過程爲productid增加1的字母數字值。我的程序將值增加到10個記錄,一旦達到PRD0010的第10個值,就不會增加......但是,問題在於,對於每個SP調用,重複 相同的值PRD0010 ..爲什麼在此SQL存儲過程中創建重複的自然ID?
這可能是什麼原因造成的?
create table tblProduct
(
id varchar(15)
)
insert into tblProduct(id)values('PRD00')
create procedure spInsertInProduct
AS
Begin
DECLARE @PId VARCHAR(15)
DECLARE @NId INT
DECLARE @COUNTER INT
SET @PId = 'PRD00'
SET @COUNTER = 0
SELECT @NId = cast(substring(MAX(id), 4, len(MAX(id))) as int)
FROM tblProduct group by left(id, 3) order by left(id, 3)
--here increse the vlaue to numeric id by 1
SET @NId = @NId + 1
--GENERATE ACTUAL APHANUMERIC ID HERE
SET @PId = @PId + cast(@NId AS VARCHAR)
INSERT INTO tblProduct(id)values (@PId)
END
astander->正是你是對的...它的工作fine..thanks烏拉圭回合的答覆 – Jims 2010-12-10 06:17:28